布尔线误差

时间:2014-08-01 10:46:01

标签: java bluej

所以基本上,我必须编写一个小程序来分配学生的分数。

它工作正常,我可以很好地进入H(高级)成绩,但是当我选择S(标准)时,它会让我回到编辑器中,我只是不知道什么是错的。

boolean isHigher = getInput().charAt(0) == 'H' || getInput().charAt(0) == 'h';

1 个答案:

答案 0 :(得分:0)

我能想到的唯一原因是你的getInput()删除了输入,并且实际上并没有再次询问它。

在这种情况下会发生以下情况:输入不等于“H”,因此您转到或,您没有输入,因此您返回一个空字符串,您要求char位置0 => StringIndexOutOfBoundException

您应该使用:

Character enteredCharacter = getInput().charAt(0);
boolean isHigher = enteredCharacter == 'H' || enteredCharacter == 'h';