據我迄今爲止在我的教科書中閱讀的課程,在我的課程模塊和2 +小時的搜索,我無法弄清楚爲什麼我的代碼不工作。 主要方法中的do while循環工作正常,但get方法中while循環不循環。我輸入錯誤的號碼,收到錯誤消息,然後再次詢問號碼,然後轉到下一個get方法。Java while while循環不循環
我希望這是簡單的,我忽略了,但我會很感激任何幫助,我可以得到這一點。
這裏是我的getHome方法的代碼:調用此方法
public static int getHome()
{
int homeNum;
String home;
do
{
home = JOptionPane.showInputDialog(null,"Enter 1(apartment), 2(house),"
+ " or 3(dorm).","Dwelling Type", JOptionPane.QUESTION_MESSAGE);
homeNum = Integer.parseInt(home);
if(!(homeNum == 1) && !(homeNum == 2) && !(homeNum == 3))
{
JOptionPane.showMessageDialog(null, "The value for dwelling type "
+ "must be 1(apartment), 2(house), or 3(dorm)", "Dwelling"
+ "Type Error", JOptionPane.ERROR_MESSAGE);
}
return homeNum;
}
while(homeNum < 0 || homeNum > 3);
,並在主方法的代碼:
public static void main(String[] args)
{
String response;
do
{
petRec(getHome(), getHours());
response = JOptionPane.showInputDialog(null, "Do you want to continue?" +
"\nEnter Y for yes and anything else for no.", "Continue?", +
JOptionPane.QUESTION_MESSAGE);
}
while(response.equalsIgnoreCase("y"));
}
只是爲了澄清這裏是petRec方法:
public static void petRec(int homeType, double hoursAtHome)
{
String pet;
if(homeType == 1 && hoursAtHome >= 10)
pet = "Cat";
else
if(homeType == 1 && hoursAtHome < 10)
pet = "Hamster";
else
if(homeType == 2 && hoursAtHome >= 18)
pet = "Pot-Bellied Pig";
else
if(homeType == 2 && hoursAtHome >= 10 && hoursAtHome <= 17)
pet = "Dog";
else
if(homeType == 2 && hoursAtHome < 10)
pet = "Snake";
else
if(homeType == 3 && hoursAtHome > 6)
pet = "Fish";
else
if(homeType == 3 && hoursAtHome < 6)
pet = "Ant Farm";
else
pet = "Nothing";
JOptionPane.showMessageDialog(null, "You should get a " + pet + "!",
"Recommended Pet", JOptionPane.INFORMATION_MESSAGE);
}
去年我介紹了Visual Basic並且有無限循環,今年我拿了Java並且無法重複循環。 getHours方法的結構幾乎與getHome方法相同,只是在提示中使用不同的變量和措辭。 當一個不是1,2或3的數字被輸入時,程序應該顯示錯誤信息,然後循環再次詢問你的號碼。它顯示錯誤信息,但隨後繼續詢問小時。 我再次非常感謝任何可以提供的幫助。這項工作直到星期六纔開始,但我只有2天的時間來完成這項任務。 預先感謝您的幫助:)
返回一個循環? – StackFlowed 2014-09-29 20:44:23