我在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;
}
但即使该值不是其中之一,该方法也会返回错误的值 是否有任何方法可以使作为输入等于四个字母并返回它们
答案 0 :(得分:1)
您希望循环直到收到符合要求的输入,但问题是接收输入不仅仅是自己发生。致电check(someString)
后,m
变为someString
,除非您的检查功能为其分配新值,否则m
不会发生变化。因此,即使用户尝试发送新输入,您的while循环也会每次都检查相同的输入。您必须调用函数以接收新用户输入并将其放入m
,或将while
循环替换为返回if
或{{1}的false
语句} *并反复询问新输入并在其上调用null
,直到您获得check
或false
以外的结果。
*在编写代码时,您必须返回null
,但是更改方法可能是合适的,这样如果输入有效,它将返回null
而不是返回输入。如果输入无效,则返回true
,然后您可以将此函数用作false
或if
语句中的条件。
示例:
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;
}
您必须先了解基础知识,另见其他答案....