java: несовместимые типы: логическое значение не может быть преобразовано в int - PullRequest
0 голосов
/ 06 августа 2020

Я обнаружил ошибку несовместимых типов: логическое значение не может быть преобразовано в int '

public static void main(String[] args) {

    for (int i = 1; i <= 100; i++) {
        switch (i) {

            case (i % 3 == 0 && i % 5 == 0):{
                System.out.println("Number #" + i + " :Number is divisible by both 3 and 5" + "--->" + "FizzBuzz");
                break;
                }

            case (i % 5 == 0 && i % 7 == 0): {
                System.out.println("Number #" + i + " :Number is divisible by both 5 and 7" + "--->" + "FizzBuzz");
                break;
            }

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

Оператор switch в Java просто так не работает. Вам нужно использовать выражения констант времени компиляции в case s, и есть ограничения на то, какие типы вы можете использовать.

Просто используйте if-выражения:

for (int i = 1; i <= 100; i++) {
    if (i % 3 == 0 && i % 5 == 0) {
        System.out.println("Number #" + i + " :Number is divisible by both 3 and 5" + "--->" + "FizzBuzz");
    }

    if (i % 5 == 0 && i % 7 == 0) {
        System.out.println("Number #" + i + " :Number is divisible by both 5 and 7" + "--->" + "FizzBuzz");
    }

Если хотите Чтобы узнать, как использовать оператор switch, см., например, The Java Tutorial (или практически любой другой источник, который вы найдете в inte rnet, выполнив поиск «Java switch statement»)

1 голос
/ 06 августа 2020

Хм, вы получаете эту ошибку, потому что пытаетесь использовать логический оператор внутри оператора case. В операторе switch-case case должен содержать тот же тип, что и switch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...