2014-01-26 3 views
-3

У меня мало проблем с кодом Java. Я использую код ниже, но Eclipse всегда запрашивает одно и то же сообщение «Оператор || не определен для типа (ов) аргумента int, int».Оператор || undefined для типа аргументов 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); 

    } 
} 
+2

Как вы думаете, результат '1 || 0' должно быть? Что представляет собой операция '||'? – Pshemo

+0

Если пользователи ответят не на «1 или 0» с клавиатуры, то одно и то же сообщение снова запросит строку (ответьте (1) или (0)); – user3238467

+0

'||' означает «или», поэтому для этого, обе стороны '||' * должны быть логическими *. Ни '1', ни' 0' не являются логическими, поэтому '(1 || 0)' терпит неудачу. – mc10

ответ

4

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).

+0

Я пробовал оба из них "(cevap! = 1 && cevap! = 0) - (else)"; (cevap! = 1 && cevap! = 0) работал (Большое вам спасибо). Я попытался использовать «else», но это вызвало аплодирование massege во всех условиях. Спасибо за совет. – user3238467

+0

Вышеприведенный код должен работать. Если вы хотите использовать более подробное условие, замените 'else' на' else if (cevap! = 1 && cevap! = 0) '. – mc10

0

Вы хотите сравнить cevap с двумя разными номерами. Вы должны сделать это так:

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

Так в основном это «если cevap не равен 1 и cevap не равен 0».

+0

Он не может просто написать 'else'. Ему нужно превратить средний блок в 'else if', если он хочет использовать' else'. – nhgrif

+0

Не видел, чтобы он этого не делал, изменил его –

Смежные вопросы