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

Switch语句问题,默认[关闭]

戚繁
2023-03-14

所以基本上我有一个学校项目,它在while循环中包含一个switch语句。

假设我输入“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.");
            }
        }
}

使用in.nextLine()使用nextByte()后面的尾随\n。解释在注释中提供的链接中。

 类似资料:
  • 所以基本上我有一个学校的项目,它包含一个time循环中的开关语句。 假设我输入“1”,它在大小写“1”中运行代码。然后它应该在之后中断。但默认代码也总是运行。 这是案例“1”代码: 这是默认代码: 以下是输出: 我很有信心我的代码是正确的,但是如果我缺少什么,请告诉我如何修复它,谢谢。

  • 下面的代码返回一个错误,但我不确定原因。需要更改哪些内容以允许编译?

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

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

  • switch 语句可以替代多个 if 判断。 switch 语句为多分支选择的情况提供了一个更具描述性的方式。 语法 switch 语句有至少一个 case 代码块和一个可选的 default 代码块。 就像这样: switch(x) { case 'value1': // if (x === 'value1') ... [break] case 'value2':

  •  使用 switch 语句可以更简洁地实现 if ~ else if 的结构。格式如下。 switch(base_expression) { casecondition_expression1: casecondition_expression2: : : default: : : }  写在 base_expression 位置的表达式会在刚开始时被求值。switch 后面的语句块中的 case