我正在制作一个节目,我正处于一个部分,我想让用户输入每个评委的评分,但是当它开始时,并要求第一个评判是正确的说“输入得分为判断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);
}
}
答案 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);
}