我的if-else语句不会处理第二个和第三个中的内容,否则如果"

时间:2017-05-26 12:50:17

标签: java performance if-statement

忽略文本是瑞典语的事实(如果可以的话)。

问题在于,当我运行程序时,我按下#34;是"在弹出的前两个问题中,第一个if语句工作正常,但每当我按下时,例如" yes"然后"不",没有任何反应,我认为这是因为其他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                   
}

1 个答案:

答案 0 :(得分:0)

安排if大括号的问题 - &gt; }&lt; - 。

看起来是一个很好的调试器     首先只保留一个“if”并剪切其他代码(备份文件后)。     测试是否按计划运行。     使用一些代码再过一次“如果”。     测试也没关系     等等。

通过这种方式,你的技能将从程序员发展成为我的朋友的开发人员。 并继续工作并继续跟踪。