Печать внутри коммутатора - PullRequest
0 голосов
/ 06 марта 2020

Желаемым результатом является печать "я равен нулю", затем один, два, три, четыре ..

Кажется, что мой для l oop работает правильно, i каждый раз становится равным 5 Я выполняю, но ни одно из моих дел не соответствует действительности, поэтому ничего не печатается. Что я делаю не так?

public class SwitchTest {

    public static void main(String[] args) {
        int i;

        for ( i=0; i < 5; i++); {

        switch (i) {
            case 0:
                System.out.println("i is zero");
            case 1:
                System.out.println("i is one");
            case 2:
                System.out.println("i is two");
            case 3:
                System.out.println("i is three");
            case 4:
                System.out.println("i is four");
            }
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Вы должны добавить оператор break после каждого Sysout, как.

switch (i) {
           case 0:
                System.out.println("i is zero");
                break;
            case 1:
                System.out.println("i is one");
                break;
            case 2:
                System.out.println("i is two");
                break;
            case 3:
                System.out.println("i is three");
                break;
            case 4:
                System.out.println("i is four");
                break;
            default:
               //some statement here.

     }
0 голосов
/ 06 марта 2020

Ничего не печатается, потому что после вашего оператора for стоит точка с запятой, а java не жалуется, потому что это все еще допустимый синтаксис . Но исправьте это, и вы обнаружите, что все ваших дел распечатываются на каждой итерации. Это связано с тем, что оператор switch будет выполняться из соответствующего дела, вплоть до самого дна, если вы не завершите каждое утверждение с помощью оператора break:


switch (i) {
    case 0:
        System.out.println("i is zero");
        break; //"break" means "exit the switch block here, don't go any further"
    case 1:
        System.out.println("i is one");
        break;
    case 2:
        System.out.println("i is two");
        break;
    case 3:
        System.out.println("i is three");
        break;
    case 4:
        System.out.println("i is four");
        break; //This one is optional
}

. Для хорошего стиля вам также следует включают случай default, но это история для другого дня ...

...