Проблемы с java: char
Нужно написать код, который запрашивает у пользователя ввести 5 разных char и в конце, если хотя бы один из введенных char это буква 'a' вывести True, если нет 'а' - False
Что у меня вышло:
public class Control{
public static void main (String[]args){
char y = 'a';
for (int x = 0; x<5; x++){
System.out.print("Insert......:");
char n = SIn.readNonwhiteChar();
if (n == y)
System.out.println("True");
else
System.out.println("False");
}
}
}
Но, этот код работает немного не так как нужно, он выводит False/True после каждого char, а не после всех:
C:\Users\SNBPC\LabProg>java Control
Insert......:e
False
Insert......:r
False
Insert......:a
True
Insert......:w
False
Insert......:a
True
Если же сделать вот так:
public class Control{
public static void main (String[]args){
char y = 'a';
for (int x = 0; x<5; x++){
System.out.print("Insert......:");
char n = SIn.readNonwhiteChar();
} //чтобы убрать if/else из цикла
if (n == y)
System.out.println("True");
else
System.out.println("False");
}
}
То выходит ошибка что невозможно найти n. И я не знаю как его продублировать опять.
C:\Users\SNBPC\LabProg>javac Control.java
Control.java:8: error: cannot find symbol
if (n == y)
^
symbol: variable n
location: class Control
1 error
Помогите.
Ответы (1 шт):
Создадим переменную isA типа boolean вне метода main. Каждый новый ввод будем сравнивать значение введённого символа с данным (char y), если они равны, то isA станет равным true: false ИЛИ true = true, true ИЛИ true = true. После ввода проверим и выполним необходимые действия:
public class Control {
static char y = 'a';
static boolean isA = false;
public static void main (String[]args) {
for (int x = 0; x<5; x++) {
char n = SIn.readNonwhiteChar();
isA = isA || (n == y);
System.out.print("Insert......:");
}
if (isA)
System.out.println("True");
else
System.out.println("False");
}
}