JAVA - 学习记录第三天

本文详细介绍了编程中的控制语句,包括顺序结构、条件判断(选择)结构和循环结构。具体讲解了if单分支、if-else双分支、if-elseif-else多分支及switch结构,以及while、do-while和for循环的用法,并通过实例演示了各种结构的运用。同时,提到了嵌套循环的概念,展示了不同循环结构的嵌套应用。
摘要由CSDN通过智能技术生成

目录

一、控制语句

(一)”顺序结构“代表“先执行a,再执行b”的逻辑。

(二)“条件判断(选择)结构”代表“如果...则...”的逻辑。

①if单分支结构

②if-else双分支结构

③if-else if-else多分支结构

④switch多分支结构(多值情况)

(三)“循环结构”代表“如果...,则重复执行...”的逻辑。

①while循环

②do-while:先执行一次再判断进入循环。

③for循环

二、嵌套循环


一、控制语句

其分为三类:顺序,选择,循环。

(一)”顺序结构“代表“先执行a,再执行b”的逻辑。

(二)“条件判断(选择)结构”代表“如果...则...”的逻辑。

选择结构用于判断给定的条件,然后根据判断的结果来控制程序的流程。主要的条件判断结构有:if结构和switch结构。而if结构又可以分为if单分支结构、if-else双分支结构、if-else if-else多分支结构。

①if单分支结构

语法结构:

if(布尔表达式){

语句块;

}

判断为ture,则执行语句块,否则反之。

测试:

//测试if单分支结构的掷骰子游戏
        int a = 1+(int)(Math.random()*6);//生成了[0,6]的随机整数
        int b = 1+(int)(Math.random()*6);
        int c = 1+(int)(Math.random()*6);

        int count = a+b+c;

        if(count>15){
            System.out.println("手气不错!");
        }

        if(10<count && count<15){
            System.out.println("手气一般!");
        }

        if(count<10){
            System.out.println("手气不怎么样!");
        }

        System.out.println("第一个骰子:"+a+"第二个骰子:"+b+"第三个骰子:"+c+",

总共:"+count);

补充:Math.random() 函数返回一个浮点数, 伪随机数在范围从0 到小于1,也就是说,从 0(包括 0)往上,但是不包括 1(排除 1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。

②if-else双分支结构

语法结构:

if(布尔表达式){

语句块1;

}else{

语句块2;

}

当布尔表达式为真时,执行语句块1;否则,执行语句块2,即else部分。

测试:

        //随机生成一个【0,4)区间的半径,并根据半径求圆的面积和周长
        double r = 4 * Math.random();
        //Math.row(r,2)求半径r的平方
        double area = Math.PI*r*r;
        double circle = 2*Math.PI*r;
        System.out.println("半径为:"+r);
        System.out.println("面积为:"+area);
        System.out.println("周长为:"+circle);
        //如果面积>=周长,则输出“面积大于等于周长”,否则输出“周长大于面积”
        if (area >= circle){
            System.out.println("周长大于等于周长");
        }else{
            System.out.println("周长等于面积");
        }

③if-else if-else多分支结构

语法结构:

if(布尔表达式1){

语句块1;

}else if(布尔表达式2){

语句块2;

}......

else if(布尔表达式n){

语句块n;

}else{

语句块n+1;

}

当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2为真时,执行语句块2;否则,继续判断布尔表达式3......;如果1~n个布尔表达式均判定为假时,则执行语句块n+1,也就是else部分。

        //100以内的随机数以对应各年龄层的输出
        int age = (int) (100*Math.random());
        System.out.println("年龄是"+age+",属于");
        if(age<15){
            System.out.println("小孩,调皮!");
        }else  if (age<25){
            System.out.println("年轻人,学习!");
        }else if(age<45){
            System.out.println("中年人,认真工作");
        }else if(age<65){
            System.out.println("中老年,多运动");
        }else if (age<85){
            System.out.println("老年人,注意身体");
        }else{
            System.out.println("大寿星,古来稀");
        }

④switch多分支结构(多值情况)

语法结构:

switch(表达式){

        case 值1:

                语句序列1;

                [break];

        case 值2:

                语句序列2;

                [break];

        ... ...         ... ...

        default:

               语句块;

                [break]

}

switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况)。

根据表达式值的不同可以执行许多不同的操作。switch语句中case标签再JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串。

测试:

        //grade表示年级
        int grade = (int)(5*Math.random());
        switch (grade) {
            case 1:
                System.out.println("一年级");
                break;
            case 2:
                System.out.println("二年级");
                break;
            case 3:
                System.out.println("三年级");
                break;
            default:
                System.out.println("四年级,要毕业了");
                break;
        }

(三)“循环结构”代表“如果...,则重复执行...”的逻辑。

循环结构分为两大类:一是当型,二是直到型。

  • 当型:当布尔表达式条件为true时,反复执行某语句,当布尔表达式的值为false时才停止循环,比如:while与for循环。
  • 直到型:先执行某语句,再判断布尔表达式,如果为ture,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,比如do-while循环。

①while循环

语法结构:

if(布尔表达式){

        循环体;

}

在循环开始,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来的每一次额外的循环,都会在开始前重新计算一次。语句中应有使循环结束的语句,否则会出现无限循环———”死循环“。

测试:

        //计算1+2+3+4+5
        int a = 0, b=0;

        while(a <= 5){
            b += a;
            a++;
        }

        System.out.println("合计:"+b);

②do-while:先执行一次再判断进入循环。

语法结构:

do{  

        循环体;

}while(布尔表达式);

③for循环

语法结构:

for(初始表达式;布尔表达式;迭代因子){

        循环体;

}

for循环语句时支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环再第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为ture,则执行循环体,否则,终止循环;最后再每一次反复的时候,进行某种形式的”步进“,即执行迭代因子。

  • 初始化部分设置循环变量的初值。
  • 条件判断部分为任意布尔表达式。
  • 迭代因子控制循环变量的增减。

for循环在执行条件判定后,先执行的循环体部分,再执行步进。

测试:

        //倒序打印1-100之间的数字
        for(int a = 100;a>0;a--){
            System.out.println(a);

        }
        //打印a-z字母
        for (char b ='a';b>='a'&& b<='z';b++){
            System.out.println(b);
        }

二、嵌套循环

在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环。while、do-while与for循环可以任意嵌套多层。

测试:

    //打印9*9乘法表。
        for (int y=1;y<=9;y++){
            for (int x=1;x<=y;x++){
                System.out.print(x+"x"+y+"="+(x*y)+"\t");

            }
            System.out.println();
        }
    

    //打印5*5方阵
            for (int i=1;i<=5;i++){
                for (int a=1;a<=5;a++){
                    System.out.print("*\t");
                }
                System.out.println();
            }
    

    //打印5*5*#方阵
        for(int x=1;x<=5;x++){
            for (int y=1;y<=5;y++) {
                if ((x + y) % 2 == 0) {
                    System.out.print("*\t");
                } else {
                    System.out.print("#\t");
                }
            }
            System.out.println();
        }
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值