比较java中的char变量

时间:2016-03-15 13:13:25

标签: java while-loop char comparison

我会比较一个字符,但它实际上不起作用:

//...
System.out.print("PROCEED? (Y/N):\t");
line = in.nextLine();
ch = line.charAt(0);

while (ch != 'y' || ch != 'n' || ch != 'Y' || ch != 'N'){
    System.out.print("NON-VALID INPUT. TYPE Y-N:\t");

    line = in.nextLine();
    ch = line.charAt(0);
}
//...

在我的终端上,当我按yn时,结果为:

PROCEED? (Y/N): y
NON-VALID INPUT. TYPE Y-N:  y
NON-VALID INPUT. TYPE Y-N:  Y
NON-VALID INPUT. TYPE Y-N:  n
NON-VALID INPUT. TYPE Y-N:  r
NON-VALID INPUT. TYPE Y-N:  d
...

3 个答案:

答案 0 :(得分:5)

你的病情有误。它应该是:

while(ch!='y' && ch!='n' && ch!='Y' && ch!='N')

因为只要输入字符与所有 4个可接受的输入不同,循环就会继续。

答案 1 :(得分:0)

您需要在while循环中使用&&而不是||

答案 2 :(得分:0)

条件错了。如果用户键入除('Y','y','N','n')之外的其他类型,则必须设置“和”条件(&&),仅进入该条件。 代码如下:

url(r'^like/(?P<pk>[0-9]+)/$', views.like_post, name='post_like'),

希望这可以帮到你。