如果 while 循环中的其他嵌套循环正常工作,我如何获得它



所以,我已经在这个问题上工作了几个小时,并且我已经广泛地扫描了互联网。我不知道为什么这对我的生活不起作用。当我输入数字时,它会提示我重新输入,这是正确的。但是,当您输入字符串("FJASFJ")时,它仍然要求我重新输入信息,我已经 print.ln 查看程序在哪里搞砸了,我仍然卡住了:/

import javax.swing.JOptionPane;
public class functions {
private static boolean x;
private static String name;
private static String fur;
private static Number weight;
public static void nameExceptionFunc(String startName){
if(!(startName instanceof String)){
name=startName;
}else{
x=false;
while(x==false){
System.out.println("Sorry, but that is not an acceptable string.");
startName=JOptionPane.showInputDialog("Re-enter an acceptable value for your cat's name: ");
if(!(startName instanceof String)){
System.out.println("o");
name=startName;
break;
}else{
System.out.println("i");
continue;
}
}   
}
}

showInputDialog总是返回一个字符串,即使它被赋予了数字输入(字符串只包含一堆数字)。 因此,startName instanceof String总是正确的。 因此,采用 if 语句的 else 分支,程序继续循环。

相反,您需要更具体地决定要接受哪种字符串。 例如,任何不包含数字的字符串都可以吗? 一种简单(但可能不是最好的)方法是遍历字符串的字符并检查每个字符是否正常。 最好将其编写为单独的函数。 然后,您可以拨打checkName(startName)或类似的东西,而不是startName instanceof String

相关内容

最新更新