public class Solution {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
int kol = String.valueOf(number). length ();
String chetnoe = "";
String kolich = "";
if (number>=1 && number<=999){
if ( number%2 == 0)
chetnoe = "четное";
if (number%2 != 0)
chetnoe = "нечетное";
if (kol == 1)
kolich = "однозначное";
if (kol == 2)
kolich = "двузначное";
if (kol == 3)
kolich = "трехзначное";
System.out.println(chetnoe + " " + kolich + " число");
}
}
}
Почему в строке int kol = String.valueOf(number). length (); надо приписать после "int kol = " String ?
И почему нужно написать String kolich = "";
String chetnoe = "";?
Почему нельзя String kolich; String chetnoe или проще String kolich, chetnoe; ???
София
11 уровень
Почему?
Архивный
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Артем Divertitto Senior Android-разработчи в United Tech Master
25 декабря 2019, 14:54
В методах переменные не проинициализированные не имеют значения по умолчанию, следовательно нужно делать это вручную
0
Ksenia Volkova Java Developer в DXC Master
25 декабря 2019, 11:51
Потому что в этом случае инициализация этих переменных будет зависеть от условий в if.
Если условия не выполнятся, переменные останутся непроинициализированы и получится, что нужно будет выполнять какие-то действия с несуществующими данными (например, объединять их в строку и выводить в консоль).
Компилятор такое не пропустит, он должен быть уверен, что используемые переменные будут проинициализированы в любом случае, независимо ни от каких условий.
(Проверка выполняемости/невыполняемости самих условий в задачи компилятора не входит).
0
София
25 декабря 2019, 16:36
Спасибо, а что это значит int kol = String.valueOf(number). ?
0
Ksenia Volkova Java Developer в DXC Master
25 декабря 2019, 16:45
Мы берем число number, превращаем в строку и определяем, сколько в этой строке символов.
Полученный результат кладем в переменную kol.
0