当前位置: 首页 > 知识库问答 >
问题:

即使条件变为false,在if块内运行的代码

融宏伟
2023-03-14

我不知道发生了什么事情。即使条件是假的,if块中的代码仍然运行。我在netbeans IDE7.4中设计了我的界面,只需在Eclipse中复制粘贴设计。以下是我的代码

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class AddSymbol extends javax.swing.JFrame {

    /**
     * Creates new form NewJFrame
     */
    Connection c;
    public AddSymbol() {


        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
        String x = "hello";
        if(x.equals("hii"))
        {
            System.out.println("Inside hi");
        }

        jinstrument = new javax.swing.JComboBox();
        jsymbol = new javax.swing.JComboBox();
        jexpiry = new javax.swing.JComboBox();
        joption = new javax.swing.JComboBox();
        jstrikeprice = new javax.swing.JComboBox();
        instrument = new javax.swing.JLabel();
        symbol = new javax.swing.JLabel();
        expiry = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        instrumentLabel = new javax.swing.JLabel();
        symbolLabel = new javax.swing.JLabel();
        expiryLabel = new javax.swing.JLabel();
        optionLabel = new javax.swing.JLabel();
        strikeLabel = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(null);

        jinstrument.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Equity", "OPTIDX", "OPTSTK", "FUTIDX", "FUTSTK", " " }));
        getContentPane().add(jinstrument);
        jinstrument.setBounds(10, 38, 83, 20);

        jsymbol.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        getContentPane().add(jsymbol);
        jsymbol.setBounds(120, 38, 210, 20);

        jexpiry.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        getContentPane().add(jexpiry);
        jexpiry.setBounds(380, 38, 180, 20);

        joption.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "PE", "CE" }));
        getContentPane().add(joption);
        joption.setBounds(10, 85, 66, 20);

        jstrikeprice.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        getContentPane().add(jstrikeprice);
        jstrikeprice.setBounds(120, 85, 56, 20);

        instrument.setText("Instrument");
        getContentPane().add(instrument);
        instrument.setBounds(10, 13, 83, 14);

        symbol.setText("Symbol");
        getContentPane().add(symbol);
        symbol.setBounds(120, 13, 218, 14);

        expiry.setText("Expiry");
        getContentPane().add(expiry);
        expiry.setBounds(380, 13, 180, 14);

        jLabel4.setText("Option Type");
        getContentPane().add(jLabel4);
        jLabel4.setBounds(10, 69, 83, 14);

        jLabel5.setText("Strike Price");
        getContentPane().add(jLabel5);
        jLabel5.setBounds(120, 69, 56, 14);

        jPanel2.setLayout(null);

        jinstrument.addItemListener(new ItemListener() {

            @Override
            public void itemStateChanged(ItemEvent arg0) {
                // TODO Auto-generated method stub
                jsymbol.removeAllItems();
                int enterloop=0;
                if(jinstrument.getSelectedItem().equals("FUTSTK"))
                {
                    enterloop =1;
                }


                if(enterloop == 1);
                {   System.out.println("inside if");

                }

            }
        });



        getContentPane().add(jPanel2);
        jPanel2.setBounds(10, 135, 577, 338);


    }// </editor-fold>                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {

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

    // Variables declaration - do not modify                     
    private javax.swing.JLabel expiry;
    private javax.swing.JLabel expiryLabel;
    private javax.swing.JLabel instrument;
    private javax.swing.JLabel instrumentLabel;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JComboBox jexpiry;
    private javax.swing.JComboBox jinstrument;
    private javax.swing.JComboBox joption;
    private javax.swing.JComboBox jstrikeprice;
    private javax.swing.JComboBox jsymbol;
    private javax.swing.JLabel optionLabel;
    private javax.swing.JLabel strikeLabel;
    private javax.swing.JLabel symbol;
    private javax.swing.JLabel symbolLabel;
    // End of variables declaration                   
}

无论我在jinstrument jcombobox中选择什么,我都会得到“inside if”作为输出。我已经检查了print语句,但enterloop的值为0,它仍然进入if语句块。请帮助我解决这个问题

共有1个答案

越运锋
2023-03-14

在这一行中有,如果(enterloop==1);

表示语句结束。因此即使if语句返回false,也会执行下一行

 类似资料:
  • 我对if/elif语句有这个烦人的问题。我是新手,抱歉愚蠢的问题。我试图找到一个修复,但没有人有它的Python。所以,如果两个条件都是True,我希望程序执行子句中的代码。据我所知,只有当两个条件都为True时,子句中的代码才会执行,对吗?不过,这在我的代码中似乎没有发生。 因此,和变量之前就已经设置好了。在这个游戏中,发生的是:用户选择偶数或奇数,并输入一个从0到5的数字。然后,计算机使用从0

  • 问题内容: 由于从未声明@A,因此sql server应该抛出错误,但是不会。这是为什么? 谢谢 问题答案: SQL Server没有块级变量作用域。 每批/存储的过程等 从MSDN(我的粗体) 变量的范围是可以引用该变量的Transact-SQL语句的范围。变量的范围从声明的点一直持续到声明它的 批处理 或 存储过程 的末尾。

  • 我有一个函数,它接收一个字符串参数,并在这个函数中检查这个参数是int还是float。尽管此条件的结果为false,但仍将执行以下行。 我使用PyCharm IDE和Python 3.8 这是代码。 输出:

  • 如果condition不起作用并且没有out检查“If”condition,它将进入“If”块并在variabel1为null时抛出在exception下面。 FreeMarker.core.InvalidReferenceException:以下内容已计算为null或缺失:==>label.variabel1[在模板“crossborader.fo”第244行,第124列] 下面是代码 如果变量

  • 我对if语句有一个奇怪的问题。我正在检查布尔值是否为true,if语句是否必须运行。I系统。出来println在很多地方显示布尔值,它总是false,但if语句仍然运行。有什么帮助吗? }

  • 问题内容: 我有一个带有IF-ELSE块的SQL代码。IF部分中的代码不应该到达,但是在执行SQL时仍然出现错误。在我首先测试链接服务器的代码中,当它失败时,将其设置为1,并且该块应执行并避免需要查询链接服务器的块中的代码,但是出现此错误: 我正在SSMS 2012中运行查询。为什么会发生此错误? -下列插入SQL语句导致错误 问题答案: 在执行之前,它仍然会解析并绑定所有内容。它没有绑定到这里。