永无止境while循环

2视图(30天)
Nicle戴维森
Nicle戴维森 2021年9月11日
评论道: Nicle戴维森2021年9月12日
我有一个while循环,我不能离开。
我离开我的测试:
我们在while循环
我把轮子step-Pos = = 1
我们在while循环
我把轮子step-Pos = = 1
我们在while循环
我把轮子step-Pos = = 1
我们在while循环
我把轮子step-Pos = = 1
我们在while循环
我把轮子step-Pos = = 1
等。
这表明我的代码进入while循环,它说,“我们在while循环”,然后进入if语句,检查哪个位置,然后做比较字符串,如果真的进入它,如果不去,然而它应该使Pos变量0时是Pos 1,反之亦然。
不管它进入如果Pos 1和比较字符串是假的,去别的,它又做了同样的事情。
我可以停止这种while循环,做的目标是什么?
notFound用于阻止这个while循环,但也许我已经把错误的地方吗?
*我需要先Pos 1测试和第二次Pos 0,和改变从0到1 aga和下次回到0。(可互换)
variabel =“测试”;
LW =“azyxwvutsrqponmlkjihgfedcb”;
MW =“acedfhgikjlnmoqprtsuwvxzyb”;
RW =“abcdefghijklmnopqrstuvwxyz”;
dW =;
notFound = 1;
Pos = 1;
p = 1:长度(variabel)
notFound = = 1
disp (“我们在while循环”);
如果Pos = = 1
如果比较字符串(LW (1) variabel (p))
disp (“是在pos 1 ! ! \ n”);
dW = append (dW, RW (1));
notFound = 0;
Pos = 0;
其他的
disp (“我把轮子一个step-Pos = = 1”);
RW = circshift (RW, 1);%以上一样
disp (RW);
%逆时针
MW = circshift (MW, 1);%以上一样
disp (LW);
%顺时针
LW = circshift (LW, 1);%以上一样
disp (LW);
结束
其他的
如果比较字符串(MW (1) variabel (p))
disp (“是在pos 0 ! ! \ n”);
dW = append (dW, RW (1));
notFound = 0;
Pos = 1;
其他的
disp (“我把轮子一个step-Pos = = 0 ');
RW = circshift (RW, 1);%以上一样
disp (RW);
%逆时针
MW = circshift (MW, 1);%以上一样
disp (LW);
%顺时针
LW = circshift (LW, 1);%以上一样
disp (LW);
结束
结束
结束
结束

接受的答案

为副总经理
为副总经理 2021年9月11日
编辑:为副总经理 2021年9月11日
有几个问题。LW variabel(1)永远不会匹配,因为它们是不同的长度。的前3个字符LW variabel永远不会匹配,因为所有的循环变化,和LW不包含子字符串。
pT =“abc”;
variabel = pT;
LW =“azyxwvutsrqponmlkjihgfedcb”;
MW =“acedfhgikjlnmoqprtsuwvxzyb”;
RW =“abcdefghijklmnopqrstuvwxyz”;
dW =;
notFound = 1;
Pos = 1;
notFound = = 1
% disp(我们在while循环);
如果Pos = = 1
% Pos永远不会改变
如果比较字符串(LW(1:元素个数(variabel)), variabel)%需要测试至少相同数量的字符
% disp(“在pos 1 ! ! \ n”);
dW = append (dW, RW (1));
notFound = 0;
Pos = 0;
其他的
% disp('我把轮子step-Pos = = 1 ');
% = RW存储;
j = 1: %(长度(RW) 1)
% RW (j) = RW (j + 1);
%结束
% RW(结束)=存储(1);
RW = circshift (RW, 1);%以上一样
%商店=兆瓦;
%商店(1)=兆瓦(结束);
% m = 1:(长度(MW))
%商店(m + 1) =兆瓦(m);
%结束
% MW =商店(1:end-1);
MW = circshift (MW, 1);%以上一样
% = LW存储;
% n = 1:(长度(LW) 1)
% LW (n) = LW (n + 1);
%结束
% LW商店(结束)= (1);
LW = circshift (LW, 1);%以上一样
结束
其他的
%可以简化以类似的方式
结束
结束
即使substring测试下就像(LW (1) MW (1) RW(1)),这不会匹配variabel,因为LW和RW转移方向相同,没有发生(a兆瓦(1)“c”)会发生。
评论提到,简化了第二部分。根据实际的目标是什么,整个的事情应进一步简化。例如,如果Pos总是被初始化为1,那么整个循环的第二部分是未使用的,可以删除。这是因为Pos唯一一次循环退出时设置为0。
pT =“abc”;
variabel = pT;
LW =“azyxwvutsrqponmlkjihgfedcb”;
MW =“acedfhgikjlnmoqprtsuwvxzyb”;
RW =“abcdefghijklmnopqrstuvwxyz”;
dW =;
notFound = 1;
notFound = = 1
如果比较字符串(LW(1:元素个数(variabel)), variabel)%需要测试至少相同数量的字符
dW = append (dW, RW (1));
notFound = 0;
其他的
RW = circshift (RW, 1);
MW = circshift (MW, 1);
LW = circshift (LW, 1);
结束
结束
当然,我不知道这是应该做的。
4评论
Nicle戴维森
Nicle戴维森 2021年9月12日
谢谢你,你的代码写的很好。

登录置评。

更多的答案(0)

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!