Java 如果用户输入了无效代码,如何对其进行编码?
如果用户输入的代码无效,则显示您选择的选项无效,并将价格设置为0Java 如果用户输入了无效代码,如何对其进行编码?,java,Java,如果用户输入的代码无效,则显示您选择的选项无效,并将价格设置为0 import java.util.Scanner; public class ShadyRestRoom { public static void main(String[]args) { Scanner scanner= new Scanner(System.in); int QueenBed = 125; int KingBed = 139; int
import java.util.Scanner;
public class ShadyRestRoom {
public static void main(String[]args) {
Scanner scanner= new Scanner(System.in);
int QueenBed = 125;
int KingBed = 139;
int KingPullout = 165;
System.out.println("Choose: 1 for a Queen bed Choose: 2 for a King bed or Choose: 3 for a King bed with a pullout couch");
int RoomChoice= scanner.nextInt();
if (RoomChoice == 1)
System.out.println("$125 for a Queen bed");
if (RoomChoice == 2)
System.out.println("$139 for a King bed");
if (RoomChoice == 3)
System.out.println("$165 for a King bed with a pullout couch");
while (RoomChoice == 4)
System.out.println("ERROR Please enter a valid Choice");
RoomChoice = scanner.nextInt();
if (RoomChoice == 8)
System.out.println("ERROR Please enter a valid Choice");
RoomChoice = scanner.nextInt();
}
}
我似乎不知道如何设置它,因此它确实=
如果用户输入了无效代码,则显示您选择了无效选项并将价格设置为0。完成选择的一种方法是开关语句。这是为它而做的。因此,选择需要改变
import java.util.Scanner;
public class ShadyRestRoom {
public static void main(String[]args) {
Scanner scanner= new Scanner(System.in);
int QueenBed = 125;
int KingBed = 139;
int KingPullout = 165;
System.out.println("Choose: 1 for a Queen bed Choose: 2 for a King bed or Choose: 3 for a King bed with a pullout couch");
int RoomChoice= scanner.nextInt();
if (RoomChoice == 1)
System.out.println("$125 for a Queen bed");
if (RoomChoice == 2)
System.out.println("$139 for a King bed");
if (RoomChoice == 3)
System.out.println("$165 for a King bed with a pullout couch");
while (RoomChoice == 4)
System.out.println("ERROR Please enter a valid Choice");
RoomChoice = scanner.nextInt();
if (RoomChoice == 8)
System.out.println("ERROR Please enter a valid Choice");
RoomChoice = scanner.nextInt();
}
}
现在,在一个开关中,对于每个有效的选项,您都有一个case语句。此外,最后还有一个默认值,用于未明确提及的所有其他内容
您可以使用该默认值作弊并将变量重置为您选择的定义值
现在,这再次使循环中的条件变得更简单,因为除了..之外,它不是那么模糊的输入。。但只有一个定义的值表示另一个循环
我把-1作为一个指标,表示出了一些问题。但是您可以使用任何对您有意义的东西作为转义码。这些值的名称是:-1是转义码。因此while检查我的escape-1并继续询问,直到用户给出范围内的内容
public static class ShadyRestRoom {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int QueenBed = 125;
int KingBed = 139;
int KingPullout = 165;
int RoomChoice = -1;
do {
System.out.println("Choose: 1 for a Queen bed Choose: 2 for a King bed or Choose: 3 for a King bed with a pullout couch");
RoomChoice = scanner.nextInt();
switch (RoomChoice) {
case 1:
System.out.println("$125 for a Queen bed");
break;
case 2:
System.out.println("$139 for a King bed");
break;
case 3:
System.out.println("$165 for a King bed with a pullout couch");
break;
//you can also explicitely take a group of numbers that need to be treated the same way:
case 4:
case 8:
default: //this is the default for everything that wasn't metioned before
RoomChoice = -1;
System.out.println("ERROR Please enter a valid Choice");
}
} while (-1 == RoomChoice);
}
}
顺便说一句:变量通常使用小写字母。所以roomChoice比roomChoice更好。有了它,您可以立即看到这是一个变量,而不是类。首先,缩进在java中没有任何意义。使用括号表示代码块。好像。。。{//body}而。。。{//body}after while RoomChoice==4用括号syup包装代码,这很有帮助,但是我能让它循环回中的if语句,直到我得到正确的输入吗?