if语句字符串始终打印

时间:2014-05-06 23:51:29

标签: java

do{
System.out.println("Would you like to enter another number? (y/n)");
restart = console.next().charAt(0);
if (!(restart=='y')||!(restart=='n')||!(restart=='N')||!(restart=='Y'))
{
System.out.println("You entered something other than the letters (y) or (n).");
}
else if (restart=='n'||restart=='N')
   {System.out.println("Goodbye.");}
}
while (!(restart=='y')||!(restart=='n')||!(restart=='N')||!(restart=='Y'));}
            while (restart=='y'||restart=='Y');}}

我希望用户输入大写或小写y或n,如果是y,则在我开始添加一些东西以捕获任何不是y或n的东西之前重新启动正常工作的程序。我希望大写或小写n显示再见,没有任何事情发生,除了y或n以外的任何东西再次要求输入y或n直到它获得corect输入,而是它总是显示你输入的内容除了... message和反复询问你是否想输入另一个号码

5 个答案:

答案 0 :(得分:1)

您可能更喜欢的另一种选择是写

while("YyNn".indexOf(restart) == -1)

表示如果在restart"中找不到"YyNn",则会再次循环播放。

答案 1 :(得分:0)

||&&一起使用时,将!替换为restart - 否则您的条件始终为真。 {{1}}总是要么不是Y,要么不是N,有时两者都是。

答案 2 :(得分:0)

这个

if (!(restart=='y')||!(restart=='n')||!(restart=='N')||!(restart=='Y'))

相同
if ((restart!='y')||(restart!='n')||(restart!='N')||(restart!='Y'))

所以你可能想要

if(!((restart=='y')||(restart=='n')||(restart=='N')||(restart=='Y')))

,这与

相同
if ((restart!='y')&&(restart!='n')&&(restart!='N')&&(restart!='Y'))

您还可以通过将值转换为大写或小写字母并进行比较来更好地创建此if语句。然后你只需要编写'N'和'Y'或'n'和'y'的代码。

答案 3 :(得分:0)

你应该使用&&而不是||在第一次IF和条件检查。

        do {
        System.out.println("Would you like to enter another number? (y/n)");

        restart = console.next().charAt(0);

        if ((restart != 'y') && (restart != 'n') && (restart != 'N') && (restart != 'Y'))
        {
            System.out.println("You entered something other than the letters (y) or (n).");
        }
        else if (restart == 'n' || restart == 'N')
        {
            System.out.println("Goodbye.");
        }
    }
    while ((restart != 'y') && (restart != 'n') && (restart != 'N') && (restart != 'Y'));   

答案 4 :(得分:-1)

首先,您不需要为大写和小写字母创建选项。使用.equalsIgnoreCase()。使用&&而不是或因为你说如果他们是或否,它将重新启动。

相关问题