虽然工作到特定条件

时间:2014-12-23 20:35:06

标签: java

我在java中创建了一个方法来检查该值是否为四个字母之一。

public static String check(String m)
{
  while(!"A".equals(m)&&!"T".equals(m)&&!"C".equals(m)&&!"G".equals(m))
  { 
     JOptionPane.showInputDialog("Wrong try again");
  }
  return m;
}

但即使该值不是其中之一,该方法也会返回错误的值 是否有任何方法可以使作为输入等于四个字母并返回它们

2 个答案:

答案 0 :(得分:1)

您希望循环直到收到符合要求的输入,但问题是接收输入不仅仅是自己发生。致电check(someString)后,m变为someString,除非您的检查功能为其分配新值,否则m不会发生变化。因此,即使用户尝试发送新输入,您的while循环也会每次都检查相同的输入。您必须调用函数以接收新用户输入并将其放入m,或将while循环替换为返回if或{{1}的false语句} *并反复询问新输入并在其上调用null,直到您获得checkfalse以外的结果。

*在编写代码时,您必须返回null,但是更改方法可能是合适的,这样如果输入有效,它将返回null而不是返回输入。如果输入无效,则返回true,然后您可以将此函数用作falseif语句中的条件。

示例:

do-while

答案 1 :(得分:0)

写这样的检查方法,

public static String check(String m)
{

  while(true)
  { 
    m =  JOptionPane.showInputDialog(null,"Enter here");
     if(!"A".equals(m)&&!"T".equals(m)&&!"C".equals(m)&&!"G".equals(m))
     { 
     JOptionPane.showInputDialog("Wrong try again");
     }
     else
     {
       break;  //will terminate the loop
     }
  }
  return m;
}

您必须先了解基础知识,另见其他答案....