关于使用字符串和整数执行+的困惑

时间:2011-04-08 18:39:07

标签: java arrays increment

我正在制作一个节目,我正处于一个部分,我想让用户输入每个评委的评分,但是当它开始时,并要求第一个评判是正确的说“输入得分为判断01“

但是当它进入下一个时它会跳过02并直接进入11,然后是21.我做错了什么?以下是此区域的代码行

int[] judge = new int[7];


    for(int i = 0; i<judge.length; i++)
    {
    System.out.println("Enter the difficulty score for each judge (0-10)");

        System.out.println("Enter the score for judge" + i+1);
        judge[i]=keyboard.nextInt();
while(score > 0 && score <=10);
    }

}

5 个答案:

答案 0 :(得分:7)

+运算符从左到右工作。操作符左侧的字符串是字符串,右侧是“i”。因此串联串联发生。 “i”被转换为字符串。然后发生另一个+ 1,它再次被视为字符串的连接。

要将i + 1作为补充处理,请将其放在括号内。

System.out.println("Enter the score for judge" + (i+1));

答案 1 :(得分:3)

运营商优先权是关键。 (i+1)应该在括号中。

没有它,所有+操作都是从左到右进行评估。

在Java中,字符串+任何东西都是字符串。 "foo"+bar只是"foo" + String.valueOf( bar );的缩写。

您可以阅读有关此here的更多信息。我承认这有点沉闷,但值得一读。它会为你节省很多麻烦。

答案 2 :(得分:0)

试试这个:

System.out.println(“输入法官的分数”+(i + i));

因为如果在+运算符之后使用任何基元而没有带括号的括号,那么它会继续附加它们。例如

String =“Guru”+ 123 + 5;

是Guru1235

其中

String =“Gurur”+(123 + 5);

即Guru128

答案 3 :(得分:0)

正在发生的事情是

System.out.println("Enter the score for judge" + i+1);

它在字符串和i上进行字符串连接,然后再与1连接。

要修复它,请将括号括在i + 1周围,如下所示:

System.out.println("Enter the score for judge" + (i+1));

答案 4 :(得分:0)

试试这段代码:

int[] judge = new int[7];

for(int i = 0; i < judge.length; i++)
{
   System.out.println("Enter the difficulty score for each judge (0-10)");
   System.out.println("Enter the score for judge 0" + (i + 1));

   judge[i] = keyboard.nextInt();
   while (score > 0 && score <= 10);
}
相关问题