简体   繁体   English

为什么我会收到此错误? “二元运算符“&&”的操作数类型错误 第一种类型:int 第二种类型:布尔值

[英]Why am I getting this error? "Bad operand type for binary operator "&&" first type: int second type: boolean"

I don't see why I would get this error because there is no boolean given, I gave 2 integers but it still tells me that there's an error.我不明白为什么会收到此错误,因为没有给出 boolean,我给了 2 个整数,但它仍然告诉我有错误。

Here's my code:这是我的代码:

import java.util.Scanner;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class MainMenu
{

JFrame frame= new JFrame();
JFrame frame2 = new JFrame();
JFrame frame3 = new JFrame();
JButton button = new JButton("Singleplayer");
JButton button2 = new JButton("Multiplayer");
JButton b = new JButton("Submit");
JLabel label = new JLabel(" ");
int i;
int i2;
MainMenu(){
    prepareGUI();
}  

public void prepareGUI(){
    frame.setTitle("Game");
    frame.getContentPane().setLayout(null);
    frame.add(button);
    frame.add(button2);
    button.setBounds(100,200,100,40);
    button2.setBounds(200,200,100,40);
    frame.setVisible(true);
    frame.setBounds(200,200,400,400);
    frame2.getContentPane().setLayout(null);
    frame2.setBounds(200,200,400,400);
    frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame3.getContentPane().setLayout(null);
    frame3.setBounds(200,200,400,400);
    frame3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    ActionListener buttonlistener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame2.setTitle("Multiplayer");
                frame2.setVisible(true);
                JLabel labelM = new JLabel("Geben sie eine Höhstzahl ein:");
                JTextField hZahl = new JTextField();
                JLabel labelN= new JLabel("Mit wie vielen Rateversuchen wollen sie `spielen?");`
                JTextField rVers = new JTextField();
                JButton b = new JButton("Submit");
                labelM.setBounds(50, 50, 400, 70);
                labelN.setBounds(50, 105, 400, 70);
                rVers.setBounds(45, 150, 100, 30);
                hZahl.setBounds(45, 95, 100, 30);
                b.setBounds(150,250,100,40);
                frame2.add(b);
                frame2.add(hZahl);
                frame2.add(labelM);
                frame2.add(labelN);
                frame2.add(rVers);

                hZahl.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent event) {
                            System.out.println("The entered text is: " + hZahl.getText());
                            int i = Integer.parseInt(hZahl.getText());
                            System.out.println(i);
                        }
                    });
                rVers.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent event) {
                            System.out.println("The entered text is: " + rVers.getText());
                            int i2 = Integer.parseInt(rVers.getText());
                            System.out.println(i2);
                        }
                    });
                ActionListener buttonlistener3 = new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent ae) { 
                            frame3.setTitle("1 Player Game");
                            frame3.setVisible(true);
                        }
                    };
                b.addActionListener(buttonlistener3);
            }
        };

    ActionListener buttonlistener2 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                //frame.getContentPane().setBackground(Color.red);
                //System.out.println("Multiplayer Selected");
                frame2.setTitle("Multiplayer");
                frame2.setVisible(true);
                JLabel labelM = new JLabel("Geben sie eine Höhstzahl ein:");
                JTextField hZahl = new JTextField();
                JLabel labelN= new JLabel("Mit wie vielen Rateversuchen wollen sie spielen?");
                JTextField rVers = new JTextField();
                JButton b = new JButton("Submit");
                labelM.setBounds(50, 50, 400, 70);
                labelN.setBounds(50, 105, 400, 70);
                rVers.setBounds(45, 150, 100, 30);
                hZahl.setBounds(45, 95, 100, 30);
                b.setBounds(150,250,100,40);
                frame2.add(b);
                frame2.add(hZahl);
                frame2.add(labelM);
                frame2.add(labelN);
                frame2.add(rVers);

                hZahl.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent event) {
                            System.out.println("The entered text is: " + hZahl.getText());
                            int i = Integer.parseInt(hZahl.getText());
                            System.out.println(i);
                        }
                    });
                rVers.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent event) {
                            System.out.println("The entered text is: " + rVers.getText());
                            int i2 = Integer.parseInt(rVers.getText());
                            System.out.println(i2);
                        }
                    });
                ActionListener buttonlistener3 = new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent ae) { 
                            if(i && i2 < 0){
                            frame3.setTitle("2 Player Game");
                            frame3.setVisible(true);
                        }
                        }
                    };
                b.addActionListener(buttonlistener3);
            }
        };
    

I am unsure as to why this is happening because as far as I am concerned I did not use a single boolean, and both i and i2 are separately and clearly marked as integers.我不确定为什么会发生这种情况,因为就我而言,我没有使用单个 boolean,并且 i 和 i2 都单独且清楚地标记为整数。 The error message appears here:错误消息出现在这里:

if(i && i2 < 0){
      frame3.setTitle("2 Player Game");
      frame3.setVisible(true);
                        }

Thank you in advance!先感谢您!

The < operator has more precedence than the && operator. <运算符的优先级高于&&运算符。 Hence your statement will be computed as i && (i2 < 0) .因此,您的语句将被计算为i && (i2 < 0) In this case i2 < 0 will be a boolean and i is an integer.在这种情况下, i2 < 0将是 boolean 而i是 integer。

To solve this issue use the brackets as要解决此问题,请使用括号作为

(i < 0) && (i2 < 0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误:二元运算符 '&&' 第一种类型 int 和第二种类型 boolean 的错误操作数类型 - error: bad operand types for binary operator '&&' first type int and second type boolean 获取二元运算符&#39;&gt;&#39;的错误错误操作数类型第一种类型:double []第二种类型:int - Getting error bad operand types for binary operator '>' first type: double [] second type: int 如何修复错误“二元运算符 &#39;&gt;=&#39; 第一种类型的错误操作数类型:int[] 第二种类型 int” - How to fix the error "Bad Operand Types for Binary Operator '>=' first type: int[] second type int" 二进制运算符的错误操作数类型+第一类型int []和第二类型int - Bad operand type for binary operator + first type int[] and second type int 二元运算符&#39;|的操作数类型错误 |” 第一种类型:int; 第二种类型:int。 这是什么意思? - Bad operand types for binary operator '| |' first type: int; second type: int. What does this mean? 二元运算符“&amp;”的错误操作数类型第一种类型:int[] 第二种类型:int - Bad operand types for binary operator ‘&’ First type: int[] Second type: int 二元运算符“!=”的错误操作数类型 第一个类型 int[] 第二个类型 int - Bad operand types for binary operator “!=” first type int[] second type int 二进制运算符“-”的错误操作数类型第一类型:int; 第二种类型:java.lang.String - bad operand types for binary operator “-” first type: int; second type: java.lang.String 二进制运算符&#39;/&#39;的错误操作数类型第一类型字符串第二类型int - Bad Operand types for binary operator '/' first type String second type int 二进制运算符&#39;!=&#39;的错误操作数类型第一类型:字符串第二类型:int - bad operand types for binary operator '!=' first type: String second type: int
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM