0

我知道我很讨厌问但请我想通过我的期中考试

我遇到的许多问题之一是“”如果变量 x 大于 100,则编写一个 if-else 语句,将 20 分配给变量 y。否则,它应该将 0 分配给变量 y。

我的看起来像这样

import java.util.Scanner;

public class ifelseprac1 {

    public static void main(String[] args) {
        int y;
        int x=0;

        Scanner keyboard = new Scanner(System.in);

        System.out.print("Enter a number for x: ");
        x=keyboard.nextInt(x);

        if (x>100)
            y=20;           
        else 
            y=0;
    }
}

我得到的错误代码是

配置:ifelseprac1 - JDK 版本 1.8.0_25

Enter a number for x: Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 525

4

2 回答 2

4

而不是这样做:

x = keyboard.nextInt(x);

做:

x = keyboard.nextInt();

如果将参数传递给nextInt,它将被解释为输入整数的基数。

我猜测,对于某些基数,Java 生成的用于提取整数的正则表达式是不正确的,但需要调试 JDK 才能确定。

于 2014-11-05T05:09:43.060 回答
0

它应该是这样的:

x = keyboard.nextInt();
于 2014-11-05T05:11:42.920 回答