Я решил данную задачу двумя способами. Через if , else все вышло хорошо. Через тернарный оператор пошло криво. Если кто знает, помогите разобраться, что не так. If - else
public class Solution {

    public static int even;
    public static int odd;

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(reader.readLine());


        while (a > 0) {
            if (a % 2 == 0){ even ++; }
            else if (a % 2 != 0){ odd++; }
            a /= 10;
        }
        System.out.println("Even: " + even + " Odd: " + odd);
    }
}
Вывод при вводе 221 : even = 2; odd = 1; Тернарный оператор
while (a > 0) {
            even = (a % 2 == 0) ? 1:0;
            odd = (a % 2 != 0) ? 1:0;
            a /= 10;
        }
Вывод при вводе 221 : even = 1; odd = 0; Я также пробовал написать вместо
even = (a % 2 == 0) ? 1:0;
odd = (a % 2 != 0) ? 1:0;
even = (a % 2 == 0) ? even++:0;
odd = (a % 2 != 0) ? odd++:0;
Но все равно тот же результат.