2014-05-06 69 views
0
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然后重新启动该罚款的工作开始之前,我补充一点赶上任何wasnt一个y或n程序。我想让大写或小写n显示再见,没有任何事情发生,除了y或n之外,再次请求输入y或n,直到它得到corect输入为止,而是始终显示您输入的内容,而不是... message和反复询问您是否想输入另一个号码如果语句字符串始终打印

+0

工作感谢你。 – user3600390

+0

@Braj如果你计算一下curlies,你会发现在顶部有一些额外的东西,这里没有显示。大概包括一个'do'。 –

+0

您可能会发现'restart!='y''也比'!(restart =='y')'更具可读性。 –

回答

0

||替换为&&当您将其与!一起使用时 - 否则您的条件始终为真。 restart总是不是Y或不是N,有时两者都是。

-1

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

+0

'char'没有'equalsIgnoreCase()'方法。 – Braj

+0

我以为你可以在字符和字符串上使用.equalsIgnoreCase()? – DavidGilly

+0

这个还是很好的建议。他应该让自己的字符串成为字符串,并且避免写代码 – mkoryak

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'的代码。

1

,你可能更喜欢另一种方法是编写

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

这意味着“循环,如果再restart"YyNn"发现”。

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'));