注意:我在 Matlab 中编程,但这是一个普遍的问题,所以大概任何伪代码都应该回答我的问题。我想知道,如何根据后续 if 语句的结果返回 if 语句的前一个块?
这是我的动机:我有一个程序可以创建一个要写入的新文件夹,如果该文件夹已经存在,我希望程序在覆盖它之前先询问。如果用户说是,则文件夹被覆盖,如果他们说不是,程序终止而不覆盖。如果用户说的不是是或否,我想回到询问是否覆盖的控制块。否则,如果用户在是/否部分犯了错误,他们必须重新运行程序才能保存他们的工作。这种向后控制流在带有 continue 语句的 for 循环中很容易实现,但 continue 语句在 if 语句中无效。
这是我现在拥有的一些示例代码:
confirm = input('Warning: That filepath already exists! Continuing may overwrite
data saved there. Continue(Y/N)?', 's');
if strcmpi(confirm, 'Y') %Compare to Y, case insensitive
elseif strcmpi(confirm,'N') %Compare to N, case insensitive
display('Program terminated without saving data');
return;
else
display('Error: Enter Y or N'); %User error, end program
return;
end
如果他们输入 Y(或 y),则循环不执行任何操作,如果他们输入 N(或 n),则程序结束,如果他们输入其他任何内容,则会出错并且程序也结束。我不想结束,而是想回到输入步骤并重新定义“确认”。是否可以像这样“倒带”或中断 if 语句?