java - 在 Java 中使用 switch 语句无法访问代码
问题描述
所以我正在构建一个电子邮件管理应用程序,虽然它正在使用 if 语句,但我正在尝试合并 switch 语句。我正在使用扫描仪提示用户选择他们来自哪个部门,同时构建与之关联的电子邮件。虽然当我试图返回 this.department 时,它说它无法访问。我觉得我错过了一些非常明显的东西。
// Ask for the department
private String setDepartment() {
Scanner sc = new Scanner(System.in);
int department;
System.out.println("Select your department:\n1. Sales\n2.Accounting\n3.Development\n4.N/A");
department = sc.nextInt();
while (true) {
switch (department) {
case 1:
this.department = "Sales";
break;
case 2:
this.department = "Accounting";
break;
case 3:
this.department = "Development";
break;
case 4:
this.department = "";
break;
default:
System.out.println("Please choose a valid option (1-4)");
break;
}
sc.close();
}
return this.department; <-- Error: Unreachable code
}
解决方案
问题是您在 while()循环中的条件。它始终设置为 true。所以while循环下面的代码永远不会被执行。尝试在while循环内有一个不同的条件,它以某个值终止。否则你需要将你想要返回的东西放在while循环中。
额外:也请把你sc.close();
放在while循环之外,否则你不能在第一次while循环迭代后使用资源。所以关闭资源必须始终在最后完成。
解决方案1:
while(updatedTerminationCondition){//change the termination condition
}
解决方案2:
while(true){
//place your return value inside here but then loop will only run once
}
推荐阅读
- python - 在python中分离包含字母和数字以及.'s的浮点数、整数、负数和字符串
- javascript - 如何使字段值达到实际输入值的百分之一?
- c - 在 C 中查找 ASCII 值之间的映射
- python - python - 我需要使用 sum() 用 for 循环填充数据框
- r - ggplot geom_contour 作为背景颜色
- python - gensim LDAModel 提前停止
- asp.net-mvc - 我如何指向 MVC 应用程序中的控制器?
- google-api - Angular 应用程序前端的 Google Docs API 密钥 - 我应该如何确保安全性?
- reactjs - 调用异步 Hook 会触发多个请求吗?
- matplotlib - 设置固定颜色条值