java流程控制04-循环(while, for, do while, break, continue)

while循环

grammar:

while (bool expression){
  // looping content
}

只要布尔表达式为true,循环就会一直执行下去(死循环)

也有需要循环一直执行的情况,比如服务器的请求响应监听等

但我们需要一个让表达式失效的方式结束循环

package com.zepei.struct;
public class WhileDemo01 {
    public static void main(String[] args) {
        // output 1-100
        int i = 0;
        while (i<100){
            i++;
            System.out.println(i);
        }
    }
}
package com.zepei.struct;

public class WhileDemo03 {
    //calculate sum of 1 to 100
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while (i <= 100){
            sum = sum + i;
            i++;
        }
        System.out.println(sum);
    }
}

do while循环

grammer:

do{
  //code
}while(bool expression);

While:先判断后执行

do while:先执行后判断,总是保证循环体会被至少执行一次

package com.zepei.struct;

public class DoWhileDemo01 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        do {
            sum = sum + i;
            i++;
        }while (i<=100);
        System.out.println(sum);
    }
}

比较while与do-while

package com.zepei.struct;

public class DoWhileDemo02 {
    public static void main(String[] args) {
        int a = 0;
        while(a<0){
            System.out.println("while " + a);
            a++;
        }
        System.out.println("=============");
        do{
            System.out.println("do while "+ a);
        }while(a<0);
    }
}

for循环

grammar:

for (initialize; bool expression; update){
  //code
}
package com.zepei.struct;

public class ForDemo01 {
    public static void main(String[] args) {
        int a = 1;//initialize
        while (a<=100){ // condition judgement
            System.out.println(a); // loop body
            a+=2; // iteration
        }
        System.out.println("while loop done");
        //initialize//condition//iteration
        for(int i = 1;i<=100;i++){
            System.out.println(i);
        }
        System.out.println("for loop done");
    }
}

for循环是最有效,最灵活的循环结构

Practice1: 计算0-100的奇数和与偶数和

package com.zepei.struct;

public class ForDemo02 {
    public static void main(String[] args) {
        // cal 0-100 sum of odd number and even number
        int oddSum = 0;
        int evenSum = 0;
        for (int i = 0; i <= 100; i++){
            if (i%2 !=0){
                oddSum+=i;
            }else{
                evenSum+=i;
            }
        }
        System.out.println("sum of odd num "+ oddSum);
        System.out.println("sum of even num "+ evenSum);
    }
}

Practice2:用while和for循环输出1-1000之间能被5整除的数,每行输出三个

// for loop
package com.zepei.struct;

public class ForDemo03 {
    public static void main(String[] args) {
        for(int i = 1;i<=1000;i++){
            if(i%5==0){
                System.out.print(i+"\t");
            }
            if (i%15 == 0){
                System.out.println();
                //System.out.println("\n");
            }
        }
    }
}

println输出完会换行

print输出完不会换行

// while loop
public class ForDemo04 {
    public static void main(String[] args) {
        int i = 1;
        while(i<=1000){
            if (i%5==0){
                System.out.print(i+"\t");
            }
            if (i%15==0){
                System.out.println();
            }
            i++;
        }
    }
}

practice3:打印九九乘法表

package com.zepei.struct;

public class ForDemo05 {
    public static void main(String[] args) {
        for (int i = 1;i < 10;i++){
            for(int j = i; j < 10; j++){
                int product = i * j;
                System.out.print(i+" * "+j+" = "+product+"\t");
            }
            System.out.println();
        }
    }
}

增强for循环

主要用于遍历数组和集合

grammer:

for (statement:expression){
  //code
}

example

package com.zepei.struct;

public class ForDemo06 {
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50}; // define an array

        for (int i = 0;i<5;i++){
            System.out.println(numbers[i]);
        }
        System.out.println("=============");
        //traverse array members
        for (int x:numbers){
          // assign each value in the array to x
            System.out.println(x);
        }
    }
}

break; continue

break

用于终止循环,强制退出循环,但是并不会终止程序

public class BreakDemo {
    public static void main(String[] args) {
        int i = 0;
        while(i<100){
            i++;
            System.out.println(i);
            if (i == 30){
                break; // for loop stop when i=30
            }
        }
        System.out.println("123"); // still	output
    }
}

continue

用于终止某次循环过程,跳过循环体尚未执行的语句,接着进行下一次是否执行循环的判定

quiz

打印一个三角形

package com.zepei.struct;

public class TestDemo01 {
    public static void main(String[] args) {
        //print a triangle in 5 lines
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j>=i; j--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i;j++){
                System.out.print("+");
            }
            for (int j = 1;j<i;j++){
                System.out.print("-");
            }
            System.out.println();
        }
    }
}
output:
     +
    ++-
   +++--
  ++++---
 +++++----
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值