流程控制语句

1.1流程控制语句
  • if语句的第一种格式:
if语句的第一种格式:	
	if(布尔表达式){
        语句体;
    }
	其它语句;
  • if语句的第二种格式:
if(布尔表达式){
        语句体1;
    } else {
        语句体2;
    }

  • 练习
import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        /*
              需求:
            让用户依次录入三个整数,求出三个数中的最大值,并打印到控制台。【使用if】
        */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个整数数字");
        int a = scanner.nextInt();
        System.out.println("请输入第二个整数数字");
        int b = scanner.nextInt();
        System.out.println("请输入第三个整数数字");
        int c = scanner.nextInt();
        int max = 0;
        //方式一: 使用三元运算符
        //int temp = (a > b) ? a : b;
        //int max = (temp > c) ? temp : c;

        //方式二: 使用两个if-else
        /*int temp;
        if (a > b) {
            temp = a;
        } else {
            temp = b;
        }
        int max;
        if (temp > c) {
            max = temp;
        } else {
            max = c;
        }*/
        //方式三: 假设a是最大的
        /*int max = a;
        if (b > max) {
            max = b;
        }
        if (c > max) {
            max = c;
        }*/
        //方式四: a,b,c的最大值要么是a,要么是b,要么是c
        //int max;
        //if (a >= b && a >= c) {
        //    max = a;
        //} else if (b >= a && b >= c) {
        //    max = b;
        //} else {
        //    max = c;
        //}
        if (a > b) {
            if (a > c) {
                max = a;
            } else {
                max = c ;
            }
        } else {
            if (b > c) {
                max = b ;
            }else {
                max = c ;
            }
        }
        System.out.println("三个数中最大的数是:"+max);
    }
}

  • if语句的第三种格式:
1.if(布尔表达式1){
        语句体1;
    } else if(布尔表达式2){
    	语句体2;
    }
	...
    else if(布尔表达式n){
    	语句体n;
    } else {
        语句体n+1;
    }
	其它语句;
2.执行流程:
	(1) 首先计算布尔表达式1的值,判断其结果是true还是false
	(2) 如果是true就执行语句体1
	(3) 如果是false就继续计算布尔表达式2,判断其结果是true还是false
	(4) 如果是true就执行语句体2
	(5) 如果是false就继续计算布尔表达式…,判断其结果是true还是false
	(6)(7) 如果没有任何布尔表达式为true,就执行语句体n+1	
  • 练习
/*
    需求:
        键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日

    演示效果:
        输入 1 输出 星期一
        输入 2 输出 星期二
        输入 3 输出 星期三
        输入 4 输出 星期四
        输入 5 输出 星期五
        输入 6 输出 星期六
        输入 7 输出 星期日
        输入 其它数字 输出 数字有误

    实现步骤:
        1.创建键盘录入Scanner类的对象
        2.获取键盘录入的代表星期数的整数数字,保存int变量week中
        3.因为week中的数字有7+1种情况,使用if语句第三种格式对week中数字进行判断,并输出对应的星期数
 */
public class Demo03IfElseIfWeek {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入代表星期的整数数字(1-7)");
        int week = scanner.nextInt();
        if (week < 1 || week > 7) {
            System.out.println("非法数字");
        }else if (week == 1){
            System.out.println("星期一");
        } else if (week == 2) {
            System.out.println("星期二");
        } else if (week == 3) {
            System.out.println("星期三");
        } else if (week == 4) {
            System.out.println("星期四");
        } else if (week == 5) {
            System.out.println("星期五");
        } else if (week == 6) {
            System.out.println("星期六");
        }else {
            System.out.println("星期天");
        }

        1.创建键盘录入Scanner类的对象
        //Scanner sc = new Scanner(System.in);
        2.获取键盘录入的代表星期数的整数数字,保存int变量week中
        //System.out.println("请输入代表星期数的整数数字(1到7之间):");
        //int week = sc.nextInt();
        3.因为week中的数字有7+1种情况,使用if语句第三种格式对week中数字进行判断,并输出对应的星期数
        //if (week == 1) {
        //    System.out.println("星期一");
        //} else if (week == 2) {
        //    System.out.println("星期二");
        //} else if (week == 3) {
        //    System.out.println("星期三");
        //} else if (week == 4) {
        //    System.out.println("星期四");
        //} else if (week == 5) {
        //    System.out.println("星期五");
        //} else if (week == 6) {
        //    System.out.println("星期六");
        //} else if (week == 7) {
        //    System.out.println("星期日");
        //} else /*if (week < 1 || week > 7)*/ {//隐含条件: week<1 || week>7
        //    System.out.println("您输入的星期数不存在,火星来的吧,哥屋恩...");
        //}
        //System.out.println("game...over...");
    }
}

  • for循环语句介绍
1.for循环格式:	
	for (初始化表达式1;布尔表达式2;步进表达式4) {
        循环体3;
    }
	其它语句;

2.执行流程:
	1,2(循环条件:true),3,4 --> 2(循环条件:true),3,4 --> 
        ... --> 直到2(循环条件:false)为false时,结束for循环,执行后面的其它语句
  • for循环的练习
public class Demo08ShuiXianHua {
    public static void main(String[] args) {
        //需求:
        //在控制台输出所有的“水仙花数”
        //
        //解释:什么是水仙花数?
        //水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
        //例如 153 3*3*3 + 5*5*5 + 1*1*1 = 27 + 125 + 1 = 153
        int count = 0 ;
        for (int num = 100; num <= 999; num++) {
            int ge = num % 10;
            int shi = num / 10 % 10;
            int bai = num / 100 % 10;
            int he = ge*ge*ge+shi*shi*shi+bai*bai*bai;
            if (he == num) {
                count++ ;
                System.out.println("水仙花数有 :" + num);
            }
        }
        System.out.println("水仙花数一共有 " +count + "个");
    }
}
  • while循环语句
1.while循环格式:
	初始化表达式1;
	while(布尔表达式2){
        循环体3;
        步进表达式4;
    }
	其它语句;

2.执行流程:		
	1,2(循环条件:true),3,4-->2(循环条件:true),3,4--> 
        ... -->直到布尔表达式2(循环条件: false)的结果为false,
		结束while循环,执行后面的其它语句
  • 练习
需求:
    世界最高山峰是珠穆朗玛峰(8844.43=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
	请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
    折纸(折叠后的厚度是原有厚度的2,而不是平方的关系):
    
    public class Demo07ZhuMuLangMF {
    public static void main(String[] args) {
        int zf = 8844430 ;
        double paper = 0.1 ;
        int count = 0 ;
        while (paper < zf){
            paper*= 2 ;
            count++;
        }
        System.out.println(count);
    }
}

  • do-while循环语句介绍
1.do-while循环格式:
	初始化表达式1;
	do {
        循环体3;
        步进表达式4;
    } while (布尔表达式2);
	其它语句;

2.执行流程:
	1,3,4 --> 2(循环条件:true),3,4 --> 2(循环条件:true),3,4 --> 
        直到布尔表达式2(循环条件:false)的结果为false,结束do-while循环,执行后面的其它语句
  • 三个循环语句之间的区别
在知道循环次数的时候使用for循环,在不知道循环次数的时候使用while循环和do-while循环
do-while循环至少执行一次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值