Условия проходят все, но валидатор не пропускает последнее условие: "Если введенное число не попадает в диапазон 1 - 999, ничего не выводить на экран"
Так как валидатор воспринимает отрицательные 1-значные и 2-х-значные числа за положительные 2-х/3-х-значные числа то сделала проверку в виде условия ((a*d)<0), чтоб отсеить отрицательные числа ..... т.е.при таком условии положительные числа всегда будут меньше 0;
В случае если введенное число окажется все же отрицательным, задала условие:
(a-=a)==0 ... логика такова, если от отрицательного числа отнять отрицательное число, то всегда будет 0, а следовательно данное число автоматически не будет входить в заданный диапазон ....
пробовала банально прописать
else if (a < 1 || (a > 999)) { } ..... не пропускает
что от меня хочет эта машина !??????????????????
неужели в ручную прописывать интервалы от 1 до 9, от 10 до 99, от 100 до 999 чтоб выявить и вывести кол-во цифр в числе ???????
package com.javarush.task.task04.task0427;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Описываем числа
*/
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
String s = reader.readLine();
int a = Integer.parseInt(s);
int b = a%2;
int c = s.length();
int d = (-1);
if ((b==0) && (c == 1)){
System.out.println("четное однозначное число");
}
else if ((b!=0) && (c == 1) && ((a*d)<0)){
System.out.println("нечетное однозначное число");
}
else if ((b==0) && (c == 2) && ((a*d)<0)){
System.out.println("четное двузначное число");
} else if ((b!=0) && (c == 2) && ((a*d)<0)){
System.out.println("нечетное двузначное число");}
else if ((b==0) && (c == 3) && ((a*d)<0)){
System.out.println("четное трехзначное число");
} else if ((b!=0) && (c == 3) && ((a*d)<0)){
System.out.println("нечетное трехзначное число");}
// else if (a < 1 || (a > 999)){} такой вариант тоже пробовала ..не пропускает
else if ((a-=a)== 0 || (a > 999)){ }
}
}