流程控制(循环)

流程控制(循环)

一、for循环

语法

for(初始化语句; 条件语句; 控制语句) {
 //循环体语句
}

流程

  1. 执行初始化语句
  2. 执行条件语句,看其结果是true还是false
    • 如果是false,循环结束
    • 如果是true,继续执行
  3. 执行循环体语句
  4. 执行控制语句
  5. 回到2继续

在这里插入图片描述

案例

//输出一百遍java
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            System.out.println("java");
        }
    }
}

//输出1-100所有奇数

public class Demo {
    public static void main(String[] args) {
//方法1
        for (int i = 0; i < 100; i++) {
            if(i%2!=0){
                System.out.println(i);
            }
        }
        for (int i = 1; i <= 97; i++) {
            System.out.println(i+=2);
        }
    }
}

//输出1+...+100的和
public class Demo {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum=sum+i;
        }
        System.out.println(sum);
    }
}

二、while循环

语法

//初始化语句
while(条件语句) {
 //循环体语句
 //控制语句
}

流程

在这里插入图片描述

案例

//打印100遍MySQL

public class Demo {
    public static void main(String[] args) {
        int i= 1;
        while (i<=100){
            System.out.println("MySQL");
            i++;
        }
    }
}
//输入一个数判断是几位数
import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        System.out.print("请输入一个整数:");
        int num = sc.nextInt();
        int temp = num;
        if (num == 0){
            System.out.println("1位数");
        }else {
            //定义一个变量,用来保存循环的值
            int conunt = 0;
            while (num!=0){
                //将这个树循环 每次循环除以10
                num/=10;
                //每次循环结束后 conunt+1 保存次数
                conunt++;
            }
            System.out.println(temp+"是"+conunt+"位数");
        }

    }
}

三、do…while循环

语法

do {
 //循环体语句
} while(条件语句);

流程

在这里插入图片描述

案例

//打印喜欢编程一百遍


public class Demo {
    public static void main(String[] args) {
        int i=0;
        do {
            System.out.println("喜欢编程");
            i++;
        }while (i<100);
    }
}
//学生根据老师的评语决定是否掉代码 直到评语结果为OK 就结束
import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a ;
        System.out.println("学生正在敲代码中...");
        do {
            System.out.print("请输入评语:");
            a = sc.next();
        }while (!a.equals("OK"));
    }
}

四、break和continue关键字

  • break表示结束当前循环
  • continue 表示结束本次循环,继续下一次循环
  • **注意:**break continue 后面不能写任何代码

案例

//从1加到100,输出第一个大于888的数字

public class Demo {
    public static void main(String[] args) {
        int sum=0;
        for (int i = 1; i <= 100; i++) {
            sum+=i;
            if(sum>888){
                System.out.println(sum);
                 //第一个大于888的数
                break;
            }
        }
    }
}
//输出100以内所有不是3的倍数
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 101; i++) {
            if (i%3==0){
                continue;//结束本次循环 开始下一次
            }
            System.out.println(i);
        }

    }
}

五、嵌套循环

案例

//打印5*5的*矩形
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
//打印一个直角三角形
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
//打印倒三角形
public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            for (int j = 1; j < 6-i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
//打印靠右的三角形

public class Demo {
    public static void main(String[] args) {
        for (int i = 0; i <= 5; i++) {
            for (int j = 1; j <= 6-i; j++) {
                System.out.print(" ");
            }
            for (int k = 0; k <= i; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("*******");
        for (int i1 = 1; i1 <= 6; i1++) {
            for (int j = 1; j <= i1; j++) {
                System.out.print(" ");
            }
            for (int k = 0; k < 7-i1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

//打印等腰三角形
public class Demo {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 6-i; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <= 2*i-1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
//打印空心矩形
public class Demo {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 5; j++) {
                if (i==5||i==1||j==1||j==5){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}
//九九乘法表
public class Demo {
    public static void main(String[] args) {
        for(int i = 1; i <= 9; i++) {//打印9行 i用来控制行
            for(int j = 1; j <= i; j++) { //打印同一行的算式
                System.out.print(j + "*" + i + "=" + i * j + "\t"); //"加法" 字符串拼接
            }
            //换行语句
            System.out.println();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值