最近上课讲到了一个关于如何跳出while(true)死循环的问题,也就是说,在进入循环中,如果到自己需求的地方就选择退出循环,这种方式该如何去实现,接下来,就根据这个问题展开细说一下吧。
1.基于JavaScript的while(true)跳出问题
1.方法1
let flag = true;
while (flag) {
switch (prompt("1.存款\n2.取款\n3.查询余额\n4.退出")) {
case "1":
alert("存款成功");
break;
case "2":
alert("取款成功");
break;
case "3":
alert("查询余额成功");
break;
case "4":
alert("退出成功");
flag = false;
break;
default:
alert("信息错误");
break;
}
}
这个方法也是最简单最原始的方法,解释一下,在外面定义一个变量flag为true,在进入死循环后,当在需要的时候跳出时,就可以将false重新赋值给flag,再通过break结束整个循环,即可跳出死循环。
2.方法2
OUT: while (true) {
switch (prompt("1.存款\n2.取款\n3.查询余额\n4.退出")) {
case "1":
alert("存款成功");
break;
case "2":
alert("取款成功");
break;
case "3":
alert("查询余额成功");
break;
case "4":
alert("退出成功");
break OUT;
default:
alert("信息错误");
break;
}
}
首先在while循环前定义一个OUT,这里的OUT代表的时循环体的意思,也可以说成是一个标记的作用,这里的OUT可以时任何字母或单词等等,但尽量不要时数字之类的(这里大家应该都能理解,就不细说了),然后在需要的跳出的那里break后面加上刚刚标记的OUT即可退出循环了。
3.方法3
function fn() {
while (true) {
switch (prompt("1.退出")) {
case "1":
alert("退出成功");
return;
}
}
}
fn();
这个方法就是简单粗暴的return,如果你在循环函数内部,你可以使用 return 关键字来跳出循环。
2.基于Java的while(true)跳出问题
这里我提前测试了一下,发现用Java写的while死循环同样可以用JavaScript退出死循环的方法1和方法2,具体操作如下:
1.方法1
public class InfiniteSwitchLoop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean running = true;
while (running) {
System.out.println("请输入选项(输入'exit'退出):");
String option = scanner.nextLine();
switch (option) {
case "1":
System.out.println("您选择了选项1");
break;
case "2":
System.out.println("您选择了选项2");
break;
case "exit":
System.out.println("程序已结束");
running = false; // 停止循环
break;
default:
System.out.println("无效的选项");
}
}
scanner.close();
}
}
同样,也是在外面先定义running为true,进入循环后,在需要结束循环的位置将false赋值给running,再通过break即可退出循环。
2.方法2
public class InfiniteSwitchLoop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
OUT:while (true) {
System.out.println("请输入选项(输入'exit'退出):");
String option = scanner.nextLine();
switch (option) {
case "1":
System.out.println("您选择了选项1");
break;
case "2":
System.out.println("您选择了选项2");
break;
case "exit":
System.out.println("程序已结束");
break OUT;
default:
System.out.println("无效的选项");
}
}
scanner.close();
}
}
和JavaScript退出死循环一样,在循环体前面标记OUT,再次强调这里的OUT可以为任何标记,单不要是数字,然后在需要结束循环的位置break后面添加这个OUT标记就可以退出循环。
3.基于C语言退出while死循环的解决办法
这里就简单说一下吧,C语言退出while死循环的办法主要有三种。
1.使用break语句。当程序执行到break语句时,会立即跳出当前的循环结构,继续执行下一条语句。
2.除了break语句之外,还可以使用return语句来退出循环。当程序执行到return语句时,会立即结束当前的函数,并返回指定的值。如果return语句位于循环结构中,它将导致循环终止并返回指定的值。
3.另外,还可以使用goto语句来跳出while死循环。通过将程序流程转移到循环外部的标签处,goto语句可以强制退出循环。
4.总结
最后来总结一下吧,其实JavaScript退出while(true)死循环最常用的是第一种方法,也是最能看懂最能理解的方法,对于使用该语言还有其他方法能够实现,例如JavaScript的定时器功能,使用使用 Promise 和 async/await异步编程的概念也能实现,这里我没有给出具体的演示例子,因为我也是通过网上查询到的这两种办法;然后Java的话,方法和JavaScript很相似,可能还有更好的办法,大家也可以在评论区分享一下;C语言最常见的就是break语句退出循环,演示示例的话大家可以去网站上查找相关视频。
看到这里了,给个免费的小赞和关注呗,谢谢大家,后续会给大家解决更多的疑难,大家有什么更好的意见或者方法也可以在评论区分享出来喔!!!