Switch 语句过早关闭
Switch statement prematurely closing
我目前正在为大学课程做一个项目,我遇到了 switch 语句过早结束的问题。我似乎无法弄清楚我做错了什么。
它应该接受用户的输入,如果不是其中一种情况,则重新启动 switch 语句。但是,一旦输入一个无效字符,switch 语句就会完全关闭并结束程序。
我目前已将其设置为在输入正确的情况下打印出每个代码,但是,
public static void companyClassificationCode() {
char companyCode;
System.out.print("Please enter your company classification code: ");
companyCode = console.next().charAt(0);
switch (companyCode) {
case 'c':
case 'C':
System.out.println("C");
companyCode = 'C';
break;
case 'l':
case 'L':
System.out.println("L");
companyCode = 'L';
break;
case 'n':
case 'N':
System.out.println("N");
companyCode = 'N';
break;
case 's':
case 'S':
System.out.println("S");
companyCode = 'S';
break;
default:
System.out.print("An invalid code has been entered. Please enter your company classification code: ");
}
}
您可能希望将 switch
语句包装在一个循环中。
以下代码将循环直到输入有效代码;无效值将恢复为初始值(单个 space 字符)并重新启动循环。
public static void companyClassificationCode() {
char companyCode = ' ';
while (companyCode == ' ') {
System.out.print("Please enter your company classification code: ");
companyCode = console.next().charAt(0);
switch (companyCode) {
case 'c':
case 'C':
System.out.println("C");
companyCode = 'C';
break;
case 'l':
case 'L':
System.out.println("L");
companyCode = 'L';
break;
case 'n':
case 'N':
System.out.println("N");
companyCode = 'N';
break;
case 's':
case 'S':
System.out.println("S");
companyCode = 'S';
break;
default:
System.out.print("An invalid code has been entered. Please enter your company classification code: ");
companyCode = ' ';
}
}
}
我目前正在为大学课程做一个项目,我遇到了 switch 语句过早结束的问题。我似乎无法弄清楚我做错了什么。
它应该接受用户的输入,如果不是其中一种情况,则重新启动 switch 语句。但是,一旦输入一个无效字符,switch 语句就会完全关闭并结束程序。
我目前已将其设置为在输入正确的情况下打印出每个代码,但是,
public static void companyClassificationCode() {
char companyCode;
System.out.print("Please enter your company classification code: ");
companyCode = console.next().charAt(0);
switch (companyCode) {
case 'c':
case 'C':
System.out.println("C");
companyCode = 'C';
break;
case 'l':
case 'L':
System.out.println("L");
companyCode = 'L';
break;
case 'n':
case 'N':
System.out.println("N");
companyCode = 'N';
break;
case 's':
case 'S':
System.out.println("S");
companyCode = 'S';
break;
default:
System.out.print("An invalid code has been entered. Please enter your company classification code: ");
}
}
您可能希望将 switch
语句包装在一个循环中。
以下代码将循环直到输入有效代码;无效值将恢复为初始值(单个 space 字符)并重新启动循环。
public static void companyClassificationCode() {
char companyCode = ' ';
while (companyCode == ' ') {
System.out.print("Please enter your company classification code: ");
companyCode = console.next().charAt(0);
switch (companyCode) {
case 'c':
case 'C':
System.out.println("C");
companyCode = 'C';
break;
case 'l':
case 'L':
System.out.println("L");
companyCode = 'L';
break;
case 'n':
case 'N':
System.out.println("N");
companyCode = 'N';
break;
case 's':
case 'S':
System.out.println("S");
companyCode = 'S';
break;
default:
System.out.print("An invalid code has been entered. Please enter your company classification code: ");
companyCode = ' ';
}
}
}