2017-05-26 56 views
-4

忽略文本在瑞典語中(如果可以的話)的事實。我的if-else語句沒有執行第二個和第三個「else if」中的事情

問題是,當我運行該程序,並在彈出的前兩個問題上按「是」時,第一個if語句正常工作,但每當我按下時,例如「是」,然後「否」什麼也沒有發生,我認爲這是因爲這是其他if語句是在第一個if語句之後,所以就像在第一個if語句之後跳過那些語句,我真的很感謝一些幫助。

import javax.swing.JOptionPane; 

public class Slutuppgift extends javax.swing.JFrame { 

public Slutuppgift() { 
    initComponents(); 
}          

    Object[] options = {"Osäker", 
       "Nej", 
       "Ja"}; 

int svar_1 = JOptionPane.showOptionDialog(null, 
"Är bilden tagen i europa? " 
, 
"Fråga 1", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
options, null); 



int svar_2 = JOptionPane.showOptionDialog(null, 
"Är det vatten med i bilden?" 
, 
"Fråga 2", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
options, null); 

if (svar_1 == 1 && svar_2 == 1){ 
    int svar_3 = JOptionPane.showOptionDialog(null, 
"Är platsen på bilden associerad med hasardspel?" 
, 
"Fråga 3", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
options, null); 


if (svar_3 == 2) 
JOptionPane.showMessageDialog(null,"Du tänkte på Vita Huset"); 
} 

else if (svar_3 == 1){ 
JOptionPane.showMessageDialog(null,"Du tänkte på Las Vegas"); 
} 

else if (svar_3 == 0){ 
JOptionPane.showMessageDialog(null,"Du tänkte inte på någon bild alls, du klickar bara på osäker"); 
} 

else if (svar_1 == 2 && svar_2 == 1){ 
int svar_4 = JOptionPane.showOptionDialog(null, 
"Är det mycket grönska på bilden?" 
, 
"Fråga 3", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
options, null); 

if (svar_4 == 2){ 
    int svar_5 = JOptionPane.showOptionDialog(null, 
"Finns det moln på bilden?" 
, 
"Fråga 4", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
options, null); 

if(svar_5 == 2){ 
    JOptionPane.showMessageDialog(null,"Du tänkte på Eiffeltornet"); 
}  
else if (svar_5 == 1){ 
    JOptionPane.showMessageDialog(null,"Du tänkte på lutande tornet i Pisa"); 
} 
} 


else if (svar_1 == 1 && svar_2 == 2){ 
    int svar_6 = JOptionPane.showOptionDialog(null, 
"Är platsen associerad med musik?" 
, 
"Fråga 3", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
options, null); 
}  

else if (svar_1 == 2 && svar_2 == 2){ 
    int svar_7 = JOptionPane.showOptionDialog(null, 
"Är byggnaden gammal?" 
, 
"Fråga 3", 
JOptionPane.YES_NO_OPTION, 
JOptionPane.QUESTION_MESSAGE, 
null, 
options, null); 

     int svar_6 = 0; 

if (svar_7 == 2){ 
    JOptionPane.showMessageDialog(null,"Du tänkte på Big Ben"); 
} 

else if (svar_7 == 1){ 
    JOptionPane.showMessageDialog(null,"Du tänkte på Turning Torso"); 
} 


}           

private void bild1MouseClicked(java.awt.event.MouseEvent evt) {         

}         

public static void main(String args[]) { 

    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(Slutuppgift.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(Slutuppgift.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(Slutuppgift.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(Slutuppgift.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    //</editor-fold> 


    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new Slutuppgift().setVisible(true); 
     } 
    }); 
} 

// Variables declaration - do not modify      
private javax.swing.JLabel bild1; 
private javax.swing.JLabel bild2; 
private javax.swing.JLabel bild3; 
private javax.swing.JLabel bild4; 
private javax.swing.JLabel bild5; 
private javax.swing.JLabel bild6; 
private javax.swing.JLabel bild7; 
private javax.swing.JLabel bild8; 
private javax.swing.JLabel bild9; 
private javax.swing.JButton jButton1; 
private javax.swing.JLabel jLabel1; 
private javax.swing.JLabel välj; 
// End of variables declaration     
} 
+0

*注意*代碼還不完整,但它仍然可以工作,但事實並非如此。 – inneedofhelp

+0

枚舉您的變量使代碼不可讀,縮進代碼的方式同樣很糟糕。在什麼範圍是'options'和所有'svar's。 – luk2302

+2

請正確格式化此代碼。尤其是正確的縮進會使讀起來更容易。 –

回答

0

安排if大括號的問題 - >} < - 。

看起來是一個很好的調試器 首先只保留一個「if」並剪切其他代碼(在備份文件後)。 測試是否按照您的計劃進行。 第二個通過一些代碼多出一個「if」。 測試還可以,也可以 等等。

通過這種方式,您的技能將從程序員發展到開發人員我的朋友。 並繼續工作並繼續跟蹤。

相關問題