[java入门到精通] 02 流程控制语句

本文详细介绍了Java中的流程控制语句,包括顺序结构、分支结构(if格式1、2、3)、switch语句及其特点、循环结构(for、while、do-while)以及流程跳转控制语句(continue和break)。每个部分都配有示例代码,帮助理解执行流程和用法。
摘要由CSDN通过智能技术生成

一、流程控制语句

1.1 顺序结构

  /*
     顺序结构:
         从上到下,从左到右,程序执行的基本顺序  */ public class Demo01 {
    public static void main(String[] args) {
         System.out.println("开始");
         System.out.println(1+2+3+4+5+"a"+6+7+8+9);
         System.out.println("b");
         System.out.println("c");
         System.out.println("结束");
     } }

1.2分支结构if语句

### 1.2.1 if语句格式1

import java.util.Scanner;

/*
    if语句
        格式1:
            if(关系表达式){
                语句体;
            }
        执行流程:
            1.判断关系表达式的值
            2.如果为true执行语句体,否则执行其他代码
 */
public class Demo01格式1 {
    public static void main(String[] args) {
        //键盘录入一个数字判断是否是偶数
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num = scanner.nextInt();
        System.out.println("开始");
        //判断是否是偶数
        if (num%2==0){
            System.out.println(num+"是偶数");
        }
        System.out.println("结束");
    }
}

1.2.2 if语句格式2

/*
    if语句:
        格式2:
            if(关系表达式){
                语句体1;
            }else{
                语句体2;
            }
        执行流程:
            判断关系表达式的值是否为true,如果为true执行语句体1,否则执行语句体2

 */
public class Demo02格式2 {
    public static void main(String[] args) {
        //键盘录入一个数字判断是奇数还是偶数
        Scanner scanner = new Scanner(System.in);
        System.out.println("请录入一个数字:");
        int num = scanner.nextInt();
        //判断奇偶数
        if (num%2==0){
            System.out.println(num+"是偶数");
        }else {
            System.out.println(num+"是奇数");
        }
    }
}

1.2.3if语句格式3

/*
    if语句
        格式3:
            if(关系表达式1){
                语句体1
            }else if(关系表达式2){
                语句体2
            }else{
                语句体3
            }
         执行流程:
            1.先判断关系表达式1的值
            2.如果为true执行 语句体1 结束
            3.如果为false 执行 关系表达式2
            4.判断关系表达式2的值是否为true
            5.如果为true执行语句体2
            6.否则执行语句体3
 */
public class Demo03格式3 {
    public static void main(String[] args) {
        int a = 9;
        if (a>10){
            System.out.println("a大于10");
        }else if (a == 10){
            System.out.println("a等于10");
        }else {
            System.out.println("a小于10");
        }
    }
}

1.3分支语句switch语句

1.3.1 switch格式

import java.util.Scanner;

/*
    switch语句
        格式:
            switch(值){
                case 值: 语句体1;break;
                case 值: 语句体2;break;
                case 值: 语句体3;break;
                case 值: 语句体4;break;
                ... ...
                default:语句体n+1;break;
            }
         执行流程:
            获取switch后面值和case语句后面的值进行匹配,匹配上就执行语句体,如果都不匹配执行default语句
 */
public class Demo04switch {
    public static void main(String[] args) {
        //减肥计划 键盘录入星期数,查看减肥计划 周一 跑步 周二 游泳 周三 动感单车 周四 爬山 周五 跳绳 周六 SPA 周日 吃顿好的
        //键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要查看的星期数:");
        int week = sc.nextInt();
        //使用switch语句查看减肥计划
        switch (week){
            case 1:System.out.println("周一 跑步");break;
            case 2:System.out.println("周二 游泳");break;
            case 3:System.out.println("周三 动感单车");break;
            case 4:System.out.println("周四 爬山");break;
            case 5:System.out.println("周五 跳绳");break;
            case 6:System.out.println("周六 SPA");break;
            case 7:System.out.println("周日 吃顿好的");break;
            default:
                System.out.println("您输入的星期数不存在!");
        }
    }
}

1.3.2 switch语句练习

键盘录入一个是月份,输出对应的季节

分析:
    1.键盘录入
        导包
        创建对象
        接收数据
    2.获取接收的数据
        使用switch语句匹配,输出对应季节
    3.case语句具有穿透性,遇到break才停止

public class Demo05switch练习 {
    public static void main(String[] args) {
        //创建对象
        Scanner scanner = new Scanner(System.in);
        //接收数据
        System.out.println("请输入一个月份:");
        int month = scanner.nextInt();
        //使用switch语句匹配,输出对应季节
        switch (month) {
            case 12:
            case 1:
            case 2:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("您给的月份有误!");
                break;

        }

    }
}

1.3.3 switch特点

/*
    switch后面小括号中只能放 byte short int char String enum(枚举)
 */
public class Demo06Switch特点 {
    public static void main(String[] args) {
        int a = 10;
        switch (a){}
        char b = '0';
        switch (b){}
        short c = 20;
        switch (c){}
//        long d = 10L;
//        switch (d){}
        String s ="";
        switch (s){}
        WEEK week = WEEK.MONDAY;
        switch (week){}
   }
}
enum WEEK{
    MONDAY,SUNDAY
}
enum MONTH{

}

1.4循环结构for循环

1.4.1 for循环

循环结构:
    有明确的的开始和结束标志,循环往复执行一段代码
   分类:
    1.for循环
    2.while循环
    3.do-while循环
 for循环格式:
    for(初始化语句;条件判断语句;条件控制语句){
        循环体语句;
    }
    执行流程:
        1.初始化语句
        2.执行条件判断语句 ==> true 执行循环体语句 ==> 条件控制语句 ==>  2.执行条件判断语句
                        ==> false 结束for循环

public class Demo01For循环 {
    public static void main(String[] args) {
        //打印1--5
        for (int i=1;i<=5;i++){
            System.out.println(i);
        }
        System.out.println("---------------");
        //打印5--1
        for (int i=5;i>=1;i--){
            System.out.println(i);
        }
    }
}

1.4.2 For循环求和

public class Demo02For循环求和 {
    public static void main(String[] args) {
        //求1--100之间所有数字和
        int sum = 0;
        //遍历1--100之间所有的数字
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        System.out.println("sum = "+sum);
    }
}

1.4.3 For循环求奇数和

求1–100之间所有奇数和


public class Demo03For循环求奇数和 {
    public static void main(String[] args) {
        int sum = 0;
        //循环遍历获取1--100之间所有数据和,数据必须是奇数
        /*for (int i = 1; i <= 100; i++) {
            //判断是否是奇数,如果是累加求和
            if (i%2!=0){
                sum+=i;//sum = sum+i;
            }
        }*/
        for (int i = 1; i < 100; i+=2) {
            sum+=i;
        }
        System.out.println("1--100之间所有奇数和:"+sum);
    }
}

1.4.4 For循环求偶数和

求1–100之间所有偶数和


public class Demo04For循环求偶数和 {
    public static void main(String[] args) {
        //定义求和变量
        int sum = 0;
        //遍历1--100之间所有数字,筛选出偶数,累加
        /*for (int i = 1; i <= 100; i++) {
            if (i%2==0) //if语句后面如果只有一行代码,大括号可以省略不写
                sum+=i;
        }*/
        for (int i = 0; i <= 100; i+=2) {
            sum+=i;
        }
        System.out.println("1--100之间所有偶数和:"+sum);
    }
}

1.4.5 For循环统计

统计1–100之间能被2整数的数字的个数,能被3整除的数字的个数


public class Demo05For循环统计 {
    public static void main(String[] args) {
        //定义两个统计变量
        int count1 = 0; //统计能被3整除个数
        int count2 = 0; //统计能被2整除个数
        //使用for循环遍历1--100之间数字
        for (int i = 1; i <= 100; i++) {
            //筛选数字
            if (i % 3 == 0)
                count1++;

            if (i % 2 == 0)
                count2++;

        }
        System.out.println("count1 = " + count1);
        System.out.println("count2 = " + count2);

    }
}

1.4.6 统计水仙花数

	    统计水仙花数个数,并打印,两个一行
	    分析:
	        水仙花数:是3位数 100-999 ;各个位上数字的立方和等于数字本身
	        使用循环遍历100--999之间所有数字
	        求每一个数字各个位上数字,然后求立方和
	        判断立方和 和 数字本身是否相等
	        如果相等就是水仙花数
	     步骤:
	        1.使用for循环获取每一个三位数
	        2.求三位数各个位上的数字
	        3.求各个位上数字的立方和
	        4.判断立方和是否和数字本身相等
/*
    统计水仙花数个数,并打印,两个一行
    分析:
        水仙花数:是3位数 100-999 ;各个位上数字的立方和等于数字本身
        使用循环遍历100--999之间所有数字
        求每一个数字各个位上数字,然后求立方和
        判断立方和 和 数字本身是否相等
        如果相等就是水仙花数
     步骤:
        1.使用for循环获取每一个三位数
        2.求三位数各个位上的数字
        3.求各个位上数字的立方和
        4.判断立方和是否和数字本身相等
 */
public class Demo06统计水仙花数 {
    public static void main(String[] args) {
        //定义统计变量
        int count = 0;
        //1.使用for循环获取每一个三位数
        for (int i = 100; i <= 999; i++) {
            //2.求三位数各个位上的数字
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;
            //3.求各个位上数字的立方和
            double sum = Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3);
            //4.判断立方和是否和数字本身相等
            if (sum == i) {
                //统计水仙花数的个数
                count++;
                System.out.print(i + " ");
                if (count % 2 == 0) {
                    System.out.println();
                }

            }
        }
    }
}

1.4.7 逢七必过

 1--100 逢七必过:数字只要包含7就喊过 是7的倍数 或者数字有7 就要喊过

  continue:关键字的意思是跳过本次继续下一次
public class Demo07逢七必过 {
    public static void main(String[] args) {
        /*for (int i = 0; i < 10; i++) {
            if (i==7){
                System.out.println("过");
                continue;
            }
            System.out.println(i); // 0 1 3 4
        }*/
        int count =0 ;
        //遍历1--100之间的数字
        for (int i = 1; i < 100; i++) {
            //判断 是否包含7 :是7的倍数 或者个位上是7 或者十位是7
            if (i%7==0 || i%10 == 7 || i/10%10 == 7){

                System.out.println("过");

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

        }
    }
}

1.4.8打印星号

@@@@@
@@@@@
@@@@@
@@@@@

public class Demo08打印星号 {
    public static void main(String[] args) {
        for (int j = 0; j < 4; j++) { //外层循环控制行数
            for (int i = 0; i < 5; i++) { //内层循环控制列数
                System.out.print("@");
            }
            System.out.println();
        }
    }
}

1.4.9 九九乘法表

public class Demo09九九乘法表 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j+"*"+i+"="+i*j +"\t");
            }
            System.out.println();
        }
    }
}

1.5while循环

1.5.1 while循环

 while循环
        格式:
            初始化语句
            while(条件判断语句){
                循环体语句;
                条件控制语句
            }
         执行流程:
            1.初始化语句
            2.条件判断语句 ==》true 循环体语句 ==》条件控制语句 ==》 2.条件判断语句
                        ==》false 结束循环
public class Demo10while循环 {
    public static void main(String[] args) {
        //打印1--5
        for (int i=1;i<=5;i++){
            System.out.println(i);
        }
        System.out.println("---------------");
        int i= 1;
        while (i<=5){
            System.out.println(i);
            i++;
        }
        System.out.println("---------------");
        //打印5--1
        /*for (int i=5;i>=1;i--){
            System.out.println(i);
        }*/
        int j = 5;
        while (j>=1){
            System.out.println(j);
            j--;
        }

    }
}

1.6 do-while循环

1.6.1 do-while循环

do-while循环
        格式:
            初始化语句
            do{
                循环体语句;
                条件控制语句
            }while(条件判断语句);
        执行流程:
            1.初始化语句
            2.循环体语句
            3.条件控制语句
            4.条件判断语句 ==> true 循环体语句 ==> 条件控制语句 ==> 4.条件判断语句;
                        ==> false 结束循环
public class Demo12DoWhile {
    public static void main(String[] args) {
        //打印1--5
        for (int i=1;i<=5;i++){
            System.out.println(i);
        }
        System.out.println("---------------");
        int i= 1;
        while (i<=5){
            System.out.println(i);
            i++;
        }
        System.out.println("---------------");
        int j = 1;
        do {
            System.out.println(j);
            j++;
        }while (j<=5);
    }
}

1.7 三种循环区别

1.for循环的初始化语句在循环内部,出来循环就不能使用
2.while和do-while初始化语句在循环外面,循环结束后,可以继续使用
3.for循环和while循环 先判断后执行 ,do-while先执行后判断

2 流程跳转控制语句

流程跳转控制语句:
    continue; 跳过本次 继续下一次
    break; 在循环中 用来结束循环,但是结束当前循环或者说是离我最近循环
public class Demo01 {
    public static void main(String[] args) {
        // continue; 跳过本次 继续下一次
        for (int i = 0; i < 5; i++) {
            if (i==2){
                continue;
            }
            System.out.println(i);
        }
        System.out.println("-------");
        //break; 在循环中 用来结束循环,但是结束当前循环或者说是离我最近循环
        for (int i = 0; i < 5; i++) {
            if (i==2){
                break;
            }
            System.out.println(i);
        }
        //但是结束当前循环或者说是离我最近循环
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (j == 2){
                    break;
                }
                System.out.println("i = "+i +";   j = "+j);
            }
        }
        System.out.println("-----");
        //如果嵌套循环 想结束外层循环
        wc:for (int i = 0; i < 5; i++) {
            nc: for (int j = 0; j < 5; j++) {
                if (j == 2){
                    break wc;
                }
                System.out.println("i = "+i +";   j = "+j);
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值