Java 未为参数类型int,int定义运算符| |

Java 未为参数类型int,int定义运算符| |,java,int,undefined,operator-keyword,Java,Int,Undefined,Operator Keyword,我的Java代码没有什么问题。我正在使用下面的代码,但是Eclipse总是提示相同的消息“运算符| |对于参数类型int,int是未定义的” 有人对此有想法吗?请帮忙。多谢各位, import javax.swing.*; public class Demo { public static void main(String[] args){ int pozitif = 0; int negatif = 0; int cevap;

我的Java代码没有什么问题。我正在使用下面的代码,但是Eclipse总是提示相同的消息“运算符| |对于参数类型int,int是未定义的”

有人对此有想法吗?请帮忙。多谢各位,

import javax.swing.*;
public class Demo {
    public static void main(String[] args){

        int pozitif = 0;
        int negatif = 0;
        int cevap;

        String Soru1 = "Soru1";
        String Soru2 = "Soru2";
        String Soru3 = "Soru3";
        String Soru4 = "Soru4";
        String Soru5 = "Soru5";
        String Soru6 = "Soru6";

        String Soru[] = {Soru1,Soru2,Soru3,Soru4,Soru5,Soru6};

        for(int i = 0; i < Soru.length; i++){

            cevap = Integer.parseInt(JOptionPane.showInputDialog(i + 1 + ". soru " + Soru[i]));
            if(cevap == 1){
                pozitif++;
            }if(cevap == 0){
                negatif++;
            }if(cevap != (1 || 0)){  // !!! Problem is here!!!
                Integer.parseInt(JOptionPane.showInputDialog(i + 1 + ". soru " + Soru[i] + "Lütfen (1) ve (0) giriniz!!!"));
            }

        }

        System.out.println("Pozitif: " + pozitif);
        System.out.println("Negatif: " + negatif);

    }
}
import javax.swing.*;
公开课演示{
公共静态void main(字符串[]args){
int-pozitif=0;
int=0;
int cevap;
字符串Soru1=“Soru1”;
字符串Soru2=“Soru2”;
字符串Soru3=“Soru3”;
字符串Soru4=“Soru4”;
字符串Soru5=“Soru5”;
字符串Soru6=“Soru6”;
字符串Soru[]={Soru1,Soru2,Soru3,Soru4,Soru5,Soru6};
for(int i=0;i
您需要的是
else
语句:

if (cevap == 1){
    pozitif++;
} else if (cevap == 0) {
    negatif++;
} else {
    Integer.parseInt(JOptionPane.showInputDialog(i + 1 + ". soru " + Soru[i] + "Lütfen (1) ve (0) giriniz!!!"));
}

这就是您想要的:当
cevap
不等于
1
0
时,运行
else
块中的内容。如果您不想使用
else
块(我不知道您为什么不想使用),可以使用更详细的
(cevap!=1和&cevap!=0)

cevap
与两个不同的数字进行比较。你必须这样做:

if (cevap != 1 && cevap != 0)

所以基本上是“如果cevap不等于1,cevap不等于0”

你认为
1 | 0
的结果应该是什么?
|
在这里表示什么操作?如果用户的答案不是键盘上的“1或0”,则该消息将再次提示字符串(请用(1)或(0)回答)
||
表示“或”,所以要使其起作用,
|
的两边都必须是布尔值。
1
0
都不是布尔值,因此
(1 | | 0)
失败。@用户3238467然后您可以按照mc10在其答案中建议的方式创建您的条件。您还可以使用类似于
的东西if(!Arrays.asList(1,0).contains(cevap))
。他不能只写
其他内容。如果他想使用
else
,他需要将中间的块变成
else if
。没有看到他没有这样做,更改了它。我尝试了两种方法(cevap!=1&&cevap!=0)-(else);(cevap!=1&&cevap!=0)有效(非常感谢)。我尝试使用“else”,但它在所有情况下都会提示Alternate massege。谢谢您的“&&”建议。上面的代码应该可以工作。如果要使用更详细的条件,请将
else
替换为
else If(cevap!=1&&cevap!=0)