Java基础之流程语句

一、流程控制语句

  • 重复执行

  • 选择执行


1.1 if 语句

作用

实现选择执行某段代码

语法
if(布尔表达式){
   代码;
}
执行过程

如果if判断结果是true,就执行里面的代码;如果判断结果为false,跳过不执行

 		double money = 10;// 钱包余额
        double price = 20;// 菜价

        if (money >= price) {
            System.out.println("点菜成功,开吃" );
        }

1.2 if-else 语句

语法
if(判断){
	语句;
} else {
    语句;
}
过程
  • 执行if,判断如果为true,就执行if后的语句,跳过else不再执行
  • 但是如果if判断为false,就跳过if语句,转而执行else
  • 从而实现2选1执行
        int age = 8;
        if (age >= 18) {
            System.out.println("欢迎光临,开机!");
        } else {
            System.out.println("你还小,再等等...");
        }
实例
  • 定义两个变量 判断他们大小(输出a>b,a<b,a==b)
    int a = 1;
    int b = 2;
    if (a > b){
        System.out.println("a > b");
    } else {
        if (a < b) {
            System.out.println("a < b");
        } else {
            System.out.println("a == b");
        }
    }
  • 定义三个变量,输出最大值(不考虑相等的情况)
    int x = 111;
    int y = 21;
    int z = 3;
    if (x > y) {
        if (x > z) {
            System.out.println("x大,x=" + x);
        } else {
            System.out.println("z大,z=" + z);
        }
    } else {
        if (y > z) {
            System.out.println("y大,y=" + y);
        } else {
            System.out.println("z大,z=" + z);
        }
    }

1.3 if-elseif

适合多选一

public static void main(String[] args) {
        /**
         * 多选一,ifelse嵌套太复杂
         * 使用使用 elseif
         * 根据钱包选择吃饭
         * >= 10000 天上人间
         * >= 1000  海鲜盛宴
         * >= 500  海底捞
         * >= 100  小吃
         * < 100  泡面
         */
        double money = 10000;
        // if (money >= 10000) {
        //     System.out.println("去天上人间");
        // } else {
        //     if (money >= 1000) {
        //         System.out.println("去海鲜盛宴");
        //     } else {
        //         if (money >= 500) {
        //             System.out.println("去海底捞" );
        //         } else {
        //             if (money >= 100) {
        //                 System.out.println("吃夜市" );
        //             } else {
        //                 System.out.println("吃泡面" );
        //             }
        //         }
        //     }
        // }

        if (money >= 10000) {
            System.out.println("去天上人间");
        } else if (money >= 1000) {
            System.out.println("去海鲜盛宴");
        } else if (money >= 500) {
            System.out.println("去海底捞");
        } else if (money >= 100) {
            System.out.println("吃夜市");
        } else {
            System.out.println("吃泡面");
        }

        /**
         * 1)先执行if,如果结果是true,执行if内代码,后面全部跳过不执行
         * 2)if结果是false,跳过if,转而判断下个elseif
         * 3)如果这个if为true,执行if后,后续不再执行
         * 4)如果这个if为false,转而执行第三个if....
         * ...
         * 5)如果所有if都是false,执行最后一个else
         */
    }

1.4 switch

switch做选择执行,类似elseif多选一, 只不过switch只能做等值判断!!!


public class Demo3 {

    public static void main(String[] args) {
        int num = 1;
        if (num == 1) {
            System.out.println("打给110");
        } else if (num == 2) {
            System.out.println("打给120");
        } else if (num == 3) {
            System.out.println("打给119");
        } else {
            System.out.println("没有快捷键" );
        }

        System.out.println("-----------" );

        switch(num) {// switch后只能写byte short int char 以及对应的包装类
                     // String ,枚举
            case 1:// case后必须写定值
                System.out.println("打给110");
                //break;// break破坏打断,作用中断switch执行
            case 2:
                System.out.println("打给120");
                break;
            case 3:
                System.out.println("打给119");
                break;
            default:
                System.out.println("没有快捷键" );
        }
    }
}

1.5 while循环

语法
while(布尔表达式){
   循环内容;
}
执行流程
  • 遇到while,先判断条件,如果条件为true,就执行{}内
  • 执行完回头继续判断while,如果条件为true,继续执行… 继续判断…
  • 只有当条件为false时结束循环,继续后续代码

public class Demo4 {

    public static void main(String[] args) {
        /**
         * 循环都有4要素
         * 1) 循环初始值
         * 2) 循环控制条件
         * 3) 循环内容
         * 4) 循环迭代
         */
        // 输出5句HelloWorld
        int i = 1;
        while(i <= 10) {
            System.out.println("HelloWorld" );
            i++;
        }
        // 输出1-10
        int j = 1;
        while (j < 11) {
            System.out.println("j = " + j);
            j++;
        }
        // 输出10-1
        int k = 10;
        while(k > 0) {
            System.out.println("k = " + k);
            k--;
        }

        System.out.println("-------" );
        // 输出1-100中既能被3整除又能被5整除的所有整数
        int x = 1;
        while (x < 101) {
            if (x % 3 == 0 && x % 5 == 0) {
                System.out.println("x = " + x);
            }
            x++;
        }

        // 找到公元1年至今所有闰年
        // 能被4整除且不能被100整除或者能被400整除的数
        int year = 1;
        while (year <= 2024) {
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                System.out.println("year = " + year);
            }
            year++;
        }
    }
}

1.6 do-while

语法
do {
    循环内容;
    迭代;
}while(条件);
执行流程
  • 遇到do,直接执行{}内
  • 执行完再判断条件,如果为对,继续执行do
  • 执行完再判断,知道 while判断为false,不再循环
  • 先斩后奏

public class Demo5 {
    public static void main(String[] args) {
        // 输出1-10
        int i = 1;
        do {
            System.out.println("i = " + i);
            i++;
        }while(i < 11);

        // 输出10-1
        int j = 10;
        do {
            System.out.println("j = " + j);
            j--;
        }while (j > 0);

        // 输出1-100的偶数
        int k = 1;
        do {
            if (k % 2 ==0) {
                System.out.println("k = " + k);
            }
            k++;
        }while (k < 101);

        // 另一种写法
        int x = 0;
        do{
            System.out.println("x = " + x);
            x+=2;
        }while (x <= 100);
    }
}

1.7 for循环

语法
for(初始值;控制条件;迭代){
    循环内容
}
  • 遇到for,只初始化一次
  • 判断条件,如果为对,直接向下执行循环
  • 执行完再回头执行迭代,再判断
  • 为true,继续执行,然后再迭代,再判断
  • 直到判断为false结束循环

public class Demo6 {

    public static void main(String[] args) {
        // 输出1-10
        for (int i = 1; i < 11; i++) {
            System.out.println("i = " + i);
        }

        System.out.println("-----");

        // 输出10-1
        for (int i = 10; i > 0; i--) {
            System.out.println(i);
        }

        System.out.println("------------");

        // 输出1-100的奇数
        // 每行输出5个奇数(即每5个换一行)
        for (int i = 1; i < 101; i++) {
            if (i % 2 == 1) {
                System.out.print(i + " ");
            }
            if (i % 10 == 0) {
                System.out.println( );
            }
        }

        // 输出1-100的和
        // 1+2+3+4+5.....+100
        int sum = 0;// 和
        for(int i = 1;i < 101;i++){
            // sum = i + sum;
            sum += i;
        }
        System.out.println("sum = " + sum);
    }
}

1.8 利用for循环嵌套打印形状

打印四边形
        /**
         * 要求输出语句只能输出一个*
         * ------ 要求输出以下形状 ------
         */
        // 外层循环控制行数
        for (int i = 1; i < 5; i++) {
            // 内存循环控制列数
            for (int j = 1; j < 11; j++) {
                System.out.print("*");
            }
            System.out.println( );
        }
输出结果

在这里插入图片描述

打印三角形
        for (int i = 1; i < 8; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println( );
        }
输出结果

在这里插入图片描述

打印等腰三角形

先打印前面空白三角形,也就是上图的三角形

 for (int i = 1; i < 10; i++) {
            for (int j = 0; j < 10-i; j++) {//10-i相当于先打印前面空白三角形
                System.out.print(" ");
            }
            for (int j = 1; j <= 2*i-1 ; j++) {
                System.out.print("*");
            }
            System.out.println( );
        }
输出结果

在这里插入图片描述

打印乘法表

其实跟打印三角形一样,换汤不换药

   for(int i = 1; i < 10 ; i++){
            for (int j = 1; j <= i; j++) {
                /*
                if-else 是为了控制对齐,因为结果大于10占两位,小于10占一位
                 */
                if(i*j<10){
                    System.out.print(j+"*"+i+"="+i*j+"   ");

                }else{
                    System.out.print(j+"*"+i+"="+i*j+"  ");
                }
            }
            System.out.println();
        }
输出结果

在这里插入图片描述

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值