2017-05-26 5 views
-4

テキストがスウェーデン語であるという事実を無視します。私のif-elseステートメントは、2番目と3番目の "else if"にあるものを実行していません

問題は、私がプログラムを実行し、ポップアップする最初の2つの質問で「はい」を押すと最初のif文がうまく動作するが、たとえば「はい」、何も起こりません、そして、私はそれがif else文が最初の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"を1つだけ残し、他のコード(ファイルをバックアップした後)をカットします。 テストは計画どおりに動作しているかどうかを確認します。 2番目の過去1つ以上のコードで "if"。 テストもOKです AND SO ON。

このようにすれば、あなたのスキルはプログラマーから開発者の私の友人に成長します。 して作業を続け、追跡を続けます。

関連する問題