2014-11-01 3 views
-1

Я пытаюсь сделать это:Error «Оператор == не определен для типа аргумента (ов) полукокса, логический»

System.out.println("Do you want to solve an equation (y/n)?"); 
char first = In.getChar(); 
boolean y = true; 
boolean n = false; 

if(first == y) 
    System.out.println("Enter a:"); 

if(first == n) 
    System.out.println("Thanks"); 

В общем, что я пытаюсь сделать это, что если я попросите пользователя решить уравнение, и пользователь нажмет y (имеется в виду «да»), то он будет проходить через оператор if, для которого y - true; но если пользователь вводит n (это означает «нет»), тогда он скажет что-то вроде «спасибо за использование системы».

Я получаю сообщение об ошибке «Оператор == не определен для типа аргументов char, boolean».

Что я делаю неправильно, и как я могу это исправить?

ответ

5

y является boolean. 'y' является char

if (first == 'y') { 
    ... 
} 
+0

сделать вам нужны эти фигурные скобки? –

+1

его хорошая практика, поэтому вы можете четко видеть область действия блока 'if', иначе в блоке используется только первый оператор :) – Reimeus

3

Вы сравнения различных типов данных char и boolean и Java не знает, как это сделать. Например, что должно быть результатом этого?

'a' == false 

Если вы хотите сравнить содержимое char переменной с конкретным char затем выполните следующие действия:

char charVar = 'n'; 
if (charVar == 'y') { // this would return "false", because 'n' is not equal 'y' 
    //... 
} 

Таким образом, вы можете изменить свой код следующим образом:

if(first == 'y') 
    System.out.println("Enter a:"); 
else if(first == 'n') // use "else if" instead of "if" :) 
    System.out.println("Thanks"); 
+1

Спасибо за сообщение Tom, это помогло! –

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