day04 【选择结构、循环判断】

流程控制

流程控制语句分类
1.顺序结构: 按照代码的书写顺序,从上而下依次执行
2.选择/分支结构
(1)if语句【重点】
(2)switch语句
3.循环结构
(1)for循环【重点】
(2)while循环
(3)do-while循环


选择结构-if

英文单词if是: 如果的意思

1.if语句的第一种格式:
if(布尔表达式){
语句体;
}
其它语句;

2.if语句的第二种格式:
if(布尔表达式){
语句体1;
} else {
语句体2;
}
其它语句;

public class Demo02If {
    public static void main(String[] args) {
        //需求1:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b
        int a = 10, b = 20;
        if (a == b) {//10 == 20: false,不执行{}中的语句体
            System.out.println(a + "等于" + b);
        }

        if (a != b) {//10 != 20: true,执行{}中的语句体
            System.out.println(a + "不等于" + b);
        }

        //需求2:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
        int c = 30;
        if (a == c) {//10 == 30: false,不执行{}中的语句体
            System.out.println(a + "等于" + c);
        }

        if(a != c) {//10 != 30: true,执行{}中的语句体
            System.out.println(a + "不等于" + c);
        }
        System.out.println("main....end....");//模拟格式中的其它语句
    }
}

	if(a == b){
        System.out.println(a + "等于" + b);
    } else {
         System.out.println(a + "不等于" + b);
    }
	其它语句;

选择结构-switch【重点】

1.switch语句的格式:
switch(表达式) {
case 常量值1;
语句体1;
break;
case 常量值2;
语句体2;
break;

case 常量值n;
语句体n;
break;
default:
语句体n+1;
break;
}
其它语句;

public class Demo01Switch {
    public static void main(String[] args) {
        int choose = 2;
        switch (choose) {//30

            case 1:
                System.out.println("你好~~~~~");
                break;

            case 2:
                System.out.println("我好~~~~~");
                break;

            case 3:
                System.out.println("大家好,才是真的好~~~~~");
                break;

            default:
                System.out.println("他好,我也好~~~~");
                break;
        }
        System.out.println("main....end....");//模拟格式中的其它语句
    }
}
使用case穿透优化根据月份输出对应的季节的案例
public class Demo03SwitchMonth {
    public static void main(String[] args) {
        //1.创建键盘录入Scanner类的对象
        Scanner sc = new Scanner(System.in);

        //2.获取键盘录入的一个1-12的整数数字(代表月份),保存到int变量month中
        System.out.println("请输入一个1-12的整数数字(代表月份): ");
        int month = sc.nextInt();

        //3.因为month中的数字有12+1中情况,使用switch语句对month中的值,进行判断,并输出不同的结果
        switch (month) {//9
            case 1:
            case 2:
            case 12:
                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;
        }
        System.out.println("main....end....");//模拟格式中的其它语句
    }
 }

循环语句

循环的分类:
(1)for循环【最最常用】
(2)while循环【一般常用】
(3)do-while循环【不常用】

1.for循环格式:
for(初始化表达式1;布尔表达式2;步进表达式4){
循环体3;
}

需求:
	在控制台输出所有的“水仙花数”
        
解释:什么是水仙花数?
	水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
	例如 153 3*3*3 + 5*5*5 + 1*1*1 = 27 + 125 + 1 = 153
        
实现步骤:
	1.使用for循环获取所有的三位数字,每个数字保存到int变量num中
    	1.1计算num中数字的个位,十位,百位 分别保存到3个int变量ge(个位),shi(十位),bai(百位)中
        1.2计算个位,十位,百位数字的立方和,保存到int变量sum中
        1.3判断如果三位数字num 等于 每位数字的立方和sum,输出该数字num

public class Demo06PrintSXH {
    public static void main(String[] args) {
        //1.使用for循环获取所有的三位数字,每个数字保存到int变量num中
        for (int num = 100; num <= 999; num++) {

            //1.1计算num中数字的个位,十位,百位 分别保存到3个int变量ge(个位),shi(十位),bai(百位)中
            //123
            int ge = num%10;//个位
            int shi = num/10%10;//十位
            int bai = num/100%10;//百位

            //1.2计算个位,十位,百位数字的立方和,保存到int变量sum中
            int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;
            //1.3判断如果三位数字num 等于 每位数字的立方和sum,输出该数字num
            if(sum == num) {
                System.out.println(num);
            }
        }
    }
}

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

需求:
	在控制台输出5次HelloWorld
public class Demo01WhileHello {
    public static void main(String[] args) {
        //使用for
        for (int i = 1; i <= 5; i++) {
            System.out.println("HelloWorld...."+i);
        }
        System.out.println("-------------");

        //使用while
        int j = 1;
        while(j<=5) {//j: 1,2,3,4,5    6<=5 --> false --> 结束while循环
            System.out.println("HelloWorld~~~~~"+j);
            j++;
        }
        System.out.println("main......end.....");
    }
}

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

public class Demo01DoWhileHello {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println("HelloWorld~~~~~"+i);
            i++;
        }while(i<=5);//2,3,4,5   6<=5: false,结束do-while循环,执行后面的语句
        System.out.println("main....end....");
    }

总结

掌握

if; if else;switch

for;while;do-whie循环

1.for/while: 先进行条件判断,后执行循环体 如果第一次条件不成立,循环体一次都不执行
2.do-while: 先执行,后判断条件 如果第一次条件不成立,循环体仍然执行一次
do-while: 循环体,至少执行一次
3.for循环内部定义的循环变量,for循环外面不可以使用
4.while/do-while: 初始化表达式中定义的变量,while/do-while外面可以使用

上一篇:JavaScript 流程控制-分支


下一篇:hdu1698 Just a Hook (线段树区间更新 懒惰标记)