[英]IF ELSE Statement Output
為什么即使courseNum等於103或206,message5也為什么輸出? 我認為這與最后一個else語句的放置位置有關,但是我已經嘗試過將其移至其他位置,並獲得了在所有if語句中將message5輸出的結果。
if (courseNum == 103)
{
JOptionPane.showMessageDialog(null,message1);
}
if (courseNum == 206)
{
JOptionPane.showMessageDialog(null,message4);
}
if (courseNum == 106)
{
answer = JOptionPane.showInputDialog("Have you passed IT 102?");
if (answer.equals("yes"))
{
JOptionPane.showMessageDialog(null,message2);
}
else if (answer.equals("no"))
{
JOptionPane.showMessageDialog(null,message3);
}
}
else
{
JOptionPane.showMessageDialog(null,message5);
}
您應該使用... else if ...
而不是if
:
if (courseNum == 103)
{
JOptionPane.showMessageDialog(null,message1);
}
else if (courseNum == 206)
{
JOptionPane.showMessageDialog(null,message4);
}
else if (courseNum == 106)
{
answer = JOptionPane.showInputDialog("Have you passed IT 102?");
if (answer.equals("yes"))
{
JOptionPane.showMessageDialog(null,message2);
}
else if (answer.equals("no"))
{
JOptionPane.showMessageDialog(null,message3);
}
}
else
{
JOptionPane.showMessageDialog(null,message5);
}
或者,甚至更好,一個switch
:
switch (courseNum) {
case 103:
JOptionPane.showMessageDialog(null,message1);
break;
case 206:
JOptionPane.showMessageDialog(null,message4);
break;
case 106:
answer = JOptionPane.showInputDialog("Have you passed IT 102?");
if (answer.equals("yes")) {
JOptionPane.showMessageDialog(null,message2);
} else if (answer.equals("no")) {
JOptionPane.showMessageDialog(null,message3);
}
break;
default:
JOptionPane.showMessageDialog(null,message5);
}
這是一個else
聲明; 如果沒有其他匹配,這就是執行的內容。
這是您代碼的外觀(就評估條件而言):
if
if
if...else
如果它的前導if
是錯誤的, if
每次懸掛的else
都會被捕獲。
您可能想要的是使用else if
語句代替。
代碼如下:
if (courseNum == 103) {
JOptionPane.showMessageDialog(null, message1);
} else if (courseNum == 206) {
JOptionPane.showMessageDialog(null, message4);
} else if (courseNum == 106) {
answer = JOptionPane.showInputDialog("Have you passed IT 102?");
if (answer.equals("yes")) {
JOptionPane.showMessageDialog(null, message2);
} else if (answer.equals("no")) {
JOptionPane.showMessageDialog(null, message3);
}
} else {
JOptionPane.showMessageDialog(null, message5);
}
請使用switch語句而不是if else鏈,這將使代碼更清晰,並且您將更輕松地發現代碼中的錯誤。
switch (courseNum) {
case 103:
JOptionPane.showMessageDialog(null, message1);
break;
case 206:
JOptionPane.showMessageDialog(null, message4);
break;
case 106:
answer = JOptionPane.showInputDialog("Have you passed IT 102?");
if (answer.equals("yes")) {
JOptionPane.showMessageDialog(null, message2);
} else if (answer.equals("no")) {
JOptionPane.showMessageDialog(null, message3);
}
break;
default:
JOptionPane.showMessageDialog(null, message5);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.