java - Java:在do while循环内切换
问题描述
我尝试制作多个随机拾取来打印每个输入数字的消息,即一系列数字(4 2 17 0),其中 0 将停止代码。输出错误
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number=scanner.nextInt();
int x = number;
do{switch(x) {
case 1:
System.out.println("Language selection");
break;
case 2:
System.out.println("Customer support");
break;
case 3:
System.out.println("Check the balance");
break;
case 4:
System.out.println("Check loan balance");
break;
case 0:
System.out.println("Exit");
break;
default:
return;
}
if (x==0)
{break;}
x++;
}
while (true);
}
} ```
![enter image description here](https://i.stack.imgur.com/RJBYn.jpg)
![enter image description here](https://i.stack.imgur.com/wCm4p.jpg)
解决方案
当整数用完时,您可以使用Scanner#hasNextInt
终止循环。
演示:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int x = scanner.nextInt();
switch (x) {
case 1:
System.out.println("Language selection");
break;
case 2:
System.out.println("Customer support");
break;
case 3:
System.out.println("Check the balance");
break;
case 4:
System.out.println("Check loan balance");
break;
case 0:
System.exit(0);
}
}
}
}
示例运行:
4 2 17 0
Check loan balance
Customer support
另外,请注意,您需要break
避免案例不经意间落空。在这种情况下,我没有看到任何使用,default
因此,我已将其从演示代码中删除。
或者,使用 do-while 循环:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = 0;
do {
x = scanner.nextInt();
switch (x) {
case 1:
System.out.println("Language selection");
break;
case 2:
System.out.println("Customer support");
break;
case 3:
System.out.println("Check the balance");
break;
case 4:
System.out.println("Check loan balance");
break;
}
} while (x != 0);
}
}
推荐阅读
- file - 在 Dart 中打开一个新创建的文件
- laravel - laravel如何仅恢复软删除删除的最后一项
- python - 如何在 Python 中模糊匹配两个列表
- python - 从存储在 json 格式类型 csv 的列表中检索名称?
- asp.net-core - 带有异常日志记录的 Serilog 附加属性
- reactjs - 如何使用高阶组件将自定义复选框/输入连接到 React 中的 LocalStorage?
- python - 如何从过滤器的字典列表中提取数据
- gzip - 拒绝从 SharePoint Online 母版页中的“myfiles.bundle.js.gz”执行脚本
- asp.net-mvc - ASP.NET Core:会话过期但用户未重定向到登录页面
- excel - 如何使用 VBA 为 Excel 功能区 UI 设置屏幕提示样式