我们可以使用'&&'逻辑运算符里面的for?

时间:2017-11-26 19:52:16

标签: java for-loop

假设我们希望在输出中看到该形状:

1
22
333
4444
666666
7777777
88888888

代码:

public class Main {

public static void main(String[] args) {

    for((int i=1;i<=4;) && (int i=6; i<=8;) i++){
        for(int j=1; j<=i; j++){

            System.out.println(i);
            System.out.println();


        }
    }
}
}

第一个问题是我不知道如何删除55555行到我的程序输出 有人可以帮助我使用继续进行正确的更正;
第二个问题是代替编写continue语句,我们可以这样写:

public class Main {

public static void main(String[] args) {



   **for((int i=1;i<=4;) && (int i=6; i<=8;) i++){**
       for(int j=1; j<=i; j++){

            System.out.println(i);
            System.out.println();

        }
    }
}
}

我被困住了:(

2 个答案:

答案 0 :(得分:0)

有一种更简单的方法可以做你想做的事。

public static void main(String[] args) {

    for(int i = 1; i < 9; i++){
        if(i != 5) {
            for(int j=1; j<=i; j++){
                System.out.println(i);
                System.out.println();
            }
        }
    }
}

或者,只需编写两个for循环,第一个从1到4运行,第二个从6到8运行。

public static void main(String[] args) {

    for(int i = 1; i < 5; i++){
        for(int j=1; j<=i; j++){
            System.out.println(i);
            System.out.println();
        }
    }
    for(int i = 6; i < 9; i++){
        for(int j=1; j<=i; j++){
            System.out.println(i);
            System.out.println();
        }
    }
}

答案 1 :(得分:0)

简短回答,不 - 您不能使用布尔&&运算符嵌套循环。但是,您可以使用lambdas来实现此

IntStream.range(1, 8) // 1, 2, 3, 4, 5, 6, 7, 8
    .filter(i -> i != 5) // remove 5
    .forEachOrdered(i -> System.out.println(IntStream.range(0, i)
            .mapToObj(j -> String.valueOf(i)) // repeat i i times
                .collect(Collectors.joining())));