@progforgood
noob

Зачем приводить к Char результат функции System.in.read();?

class temp {   
  public static void main(String args[])   
    throws java.io.IOException { 
 
    char ch, answer = 'K'; 
 
    System.out.println("I'm thinking of a letter between A and Z."); 
    System.out.print("Can you guess it: "); 
 
    ch = (char) System.in.read(); // Зачем приводить к типу char если объявленная переменная ch и так char?
    
    if(ch == answer) System.out.println("** Right **"); 
    else System.out.println("...Sorry, you're wrong."); 
  }   
}
  • Вопрос задан
  • 311 просмотров
Решения вопроса 1
@progforgood Автор вопроса
noob
В общем, не могу сформулировать ответ, но видение ситуации таково:
Немного перефразировав код получаем на выходе номер символа Юникод.. значит компилятор видит символ "K" как "75" (инт)..
class temp {   
  public static void main(String args[])   
    throws java.io.IOException { 
	
    int ch; char answer = 'K'; 
 
    System.out.println("I'm thinking of a letter between A and Z."); 
    System.out.print("Can you guess it: "); 
 
    ch = System.in.read(); // get a char 
    System.out.println(ch);
    /*if(ch == answer) System.out.println("** Right **"); 
    else System.out.println("...Sorry, you're wrong."); */
  }   
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
alsopub
@alsopub
К "char" приводится не переменная, а результат выполнения функции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы