如何让一个循环重复,当用户输入错误的信?

4视图(30天)
你好,
我创建了一个循环,用户需要状态是否已经声明filepath脚本中是正确的。如果不是他们可以选择所需的filepath。我也试图让用户“y”型或“n”,如果他们打什么我希望循环重复至今还正确的字母是类型。但是我在努力做最后一部分。
这是现在的编码是什么样子:
p =“E: \…”;
流(待分析的数据位于:\ n”);
流(' <强> % s \ n < / >强”,p)
x =输入(' \ nIs文件路径是否正确?Y / N:“,“年代”);
如果strcmpi (x,“Y”);
disp (“谢谢你,文件路径已被保存。)
elseifstrcmpi (x,“N”);
disp (请选择所需的文件路径。)
p = uigetdir(路径);
流(“谢谢你,新的文件路径已被保存为:\ n”);
流(' <强> % s \ n < / >强”,p);
其他的strcmpi (x,);
disp (“请“Y”型或“N”的);
x =输入(“文件路径是正确的吗?Y / N:“,“年代”);
结束
正如你所看到的最后一部分,如果用户类型错误的信两次将停止循环,但我希望它重复直到输入正确的字母。
任何建议我可以这样做吗?
谢谢你:)

答案(2)

安东尼尚
安东尼尚 2023年3月20日
你好S C,
你应该使用 而不是for循环。
p =“E: \…”;
流(待分析的数据位于:\ n”);
流(' <强> % s \ n < / >强”,p)
x =输入(' \ nIs文件路径是否正确?Y / N:“,“年代”);
~ strcmpi (x,“Y”)& & ~ strcmpi (x,“N”);%这只会退出这个循环当Y或N压
disp (“请“Y”型或“N”的);
x =输入(“文件路径是正确的吗?Y / N:“,“年代”);
结束
如果strcmpi (x,“Y”);
disp (“谢谢你,文件路径已被保存。)
elseifstrcmpi (x,“N”);
disp (请选择所需的文件路径。)
p = uigetdir(路径);
流(“谢谢你,新的文件路径已被保存为:\ n”);
流(' <强> % s \ n < / >强”,p);
结束
希望这可以帮助!

Abb
Abb 2023年3月20日
编辑:Abb 2023年3月20日
你可以做到这一点,把里面的代码块 循环和使用一个标志变量来控制循环。这里有一个例子:
p =“E: \…”;
流(待分析的数据位于:\ n”);
流(' <强> % s \ n < / >强”,p)
国旗= false;
~国旗
x =输入(' \ nIs文件路径是否正确?Y / N:“,“年代”);
如果strcmpi (x,“Y”);
disp (“谢谢你,文件路径已被保存。)
国旗= true;
elseifstrcmpi (x,“N”);
disp (请选择所需的文件路径。)
p = uigetdir(路径);
流(“谢谢你,新的文件路径已被保存为:\ n”);
流(' <强> % s \ n < / >强”,p);
其他的
disp (“请“Y”型或“N”的);
结束
结束
这将继续提示用户输入,直到他们进入“Y”或“N”。的 国旗 变量是最初设置为 ,循环将继续运行,直到它被设置为 真正的 当用户进入“Y”。
1评论
S C
S C 2023年3月20日
嗨,谢谢你。这是我想要的,但我需要添加“国旗= true”elseif语句的末尾(15 - 16行)之间。

登录置评。

类别

找到更多的在循环和条件语句帮助中心文件交换

s manbetx 845


释放

R2021a

社区寻宝

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

开始狩猎!

翻译的