Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果用户输入了无效代码,如何对其进行编码?_Java - Fatal编程技术网

Java 如果用户输入了无效代码,如何对其进行编码?

Java 如果用户输入了无效代码,如何对其进行编码?,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

如果用户输入的代码无效,则显示您选择的选项无效,并将价格设置为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();    
    }
}
我似乎不知道如何设置它,因此它确实=
如果用户输入了无效代码,则显示您选择了无效选项并将价格设置为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语句,直到我得到正确的输入吗?