当前位置: 首页 > 知识库问答 >
问题:

默认情况下的Switch语句问题

许俊贤
2023-03-14

所以基本上我有一个学校的项目,它包含一个time循环中的开关语句。

假设我输入“1”,它在大小写“1”中运行代码。然后它应该在之后中断。但默认代码也总是运行。

这是案例“1”代码:

case "1":
    counter = arrayLength();
    if (counter != 20) {
        System.out.print("Student name: ");
        students[array] = sc.nextLine();
        System.out.print("Student mark: ");
        marks[array] = sc.nextByte();
        array++;
        System.out.println("Student added succsessfully.");
    } else {
        System.out.println("You can only add 20 students.");
    }
    break;

这是默认代码:

default:
    System.out.println("Incorrect input. Please try again.");

以下是输出:

1
Student name: Test
Student mark: 50
Student added successfully.
Incorrect input. Please try again.

我很有信心我的代码是正确的,但是如果我缺少什么,请告诉我如何修复它,谢谢。

共有1个答案

黎鹤轩
2023-03-14
public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while(true){
            switch(in.nextLine()){
                case "1":
                    System.out.print("Student name: ");
                    String name = in.nextLine();
                    System.out.print("Student mark: ");
                    byte b = in.nextByte();
                    in.nextLine();  //consumes trailing '\n'
                    System.out.println("Student added succsessfully.");
                    break;
                default:
                    System.out.println("Incorrect input. Please try again.");
            }
        }
}

在中使用。nextLine()使用nextByte()之后的尾随符。解释见评论中提供的链接。

 类似资料:
  • 问题内容: 对于建议抛出异常的人: 抛出异常不会给我编译时错误,而是给我运行时错误。我知道我会抛出异常,我宁愿在编译时死掉,也不愿在运行时死掉。 首先,我正在使用Eclipse 3.4。 我有一个数据模型,它的mode属性是Enum。 我目前正在编写此模型的视图,并且我有代码 我收到一个错误“此方法必须返回类型为java.awt.Color的结果”,因为我没有默认大小写,并且在函数末尾没有返回xx

  • 所以基本上我有一个学校项目,它在while循环中包含一个switch语句。 假设我输入“1”,它运行案例“1”中的代码。然后它会在之后破裂。但默认代码也总是可以运行。 以下是案例“1”代码: 这是默认代码: 以下是输出: 我很有信心我的代码是正确的,但是如果我缺少什么,请告诉我如何修复它,谢谢。

  • 我想这样做: 这样的事情可能吗?我想防止代码重复。我知道在这个特定的示例中,没有什么理由这样做,因为重复的代码很小。我能想到的唯一一件事是这样的(使用开关盒的穿透能力): 我宁愿不这样做,因为增加案例数量并在底部设置默认值会更有意义。 但我想知道,如果我这样做,它会不会搞乱引擎盖下的goto语句?特别是,由于数字或顺序错误,决定使用哪个goto语句不会花费更长的时间吗?switch语句中的顺序重要

  • 问题内容: 只是想弄清楚如何对Java switch语句使用多种情况。这是我要执行的操作的一个示例: 与必须要做的事情: 有什么想法,如果可能的话,或者什么是好的选择? 问题答案: 可悲的是,这在Java中是不可能的。您将不得不使用using 语句。

  • 默认情况下,我们的路由器是Yaf_Router, 而默认使用的路由协议是Yaf_Route_Static,是基于HTTP路由的, 它期望一个请求是HTTP请求并且请求对象是使用Yaf_Request_Http

  • 问题内容: 在Java中,是否可以编写一个switch语句,其中每种情况都包含多个值?例如(尽管以下代码显然不起作用): 我认为这可以在Objective C中完成,Java中是否有类似的东西?或者我应该只使用,语句呢? 问题答案: Java没有这种东西。为什么不执行以下操作?