Java入门基础知识第五课(超基础,超仔细)——选择结构

今天主要讲一下if选择结构以及如何利用Math.random()来获取随机数。

流程控制:用来控制代码的执行顺序  

顺序结构:代码从上往下按照顺序依次执行

选择结构:根据条件选择性的执行某部分代码

循环结构:反复执行一段代码

一、if选择结构

1、单分支if选择结构

          语法:

          if(条件){        

            //代码块

          }


        规律:

                 判断条件:

                 如果条件为true,执行{}里的代码块,代码块执行完,继续往下执行if结构后面的代码,

                 如果条件为false,则跳过if选择结构,继续往下执行if结构后面的代码
       

        注意:

                1)条件必须是布尔值,不管条件写的多么简单还是多么复杂,最终结果都只能是true或

者false,所以条件可以是关系运算符或者三目运算符的运算结果

                 2)当{}中的代码只有一条语句的时候,{}可以省略不写,在这里,不建议省略

   2、双分支if选择结构

         语法:    

         if(条件){

               //代码块1  

          }else{

                //代码块2

        }
       

         规律:

                判断条件:

                如果条件为true,执行()后面{}里的代码块1,代码块1执行完,继续往下执行if-else结构后面的代码

                 如果条件为false,执行else后面{}里的代码块2,代码块2执行完,继续往下执行if-else结构构面的代码
       

         注意:

         1.条件必须是布尔值,不管条件写的多么简单还是多么复杂,最终结果都只能是true或

者false,所以条件可以是关系运算符或者三目运算符的运算结果

          2.当条件()后面{}中的代码只有一条语句的时候,{}可以省略不写,在这里,不建议省略

3、多分支if选择结构

        语法:    

        if(条件1){

        //代码块1;

        }else if(条件2){

        //代码块2;

        }else if(条件3){

        //代码块3;

        }....

        }else if(条件n){

        //代码块n;

        }else{          

        //代码块m;         

        }
        

        规律:
            

        判断条件1:
                

        如果条件1为true,执行代码块1,执行完代码块1,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码

        如果条件1为false,继续往下判断条件2:
                    

        如果条件2为true,执行代码块2,执行完代码块2,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
                    

        如果条件2为false,继续判断条件3:                    

         .........
                      

        如果条件n-1为false,继续判断条件n:
                            

        如果条件n为true,执行代码块n,执行完代码块n,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
                            

        如果条件n为false,则执行代码块m,执行完代码m,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
            
        注意:  

        1.从上往下依次判断条件,满足条件就执行对应{}里的代码,执行完就结束整个if-else-if结构   

        2.如果所有的条件都不满足,则执行else{}里的代码        

        3.else也可以省略不写,当所有的条件都不满足,又没有else代码的时候,整个if-else-if结构都不执行   

        4.如果条件的取值范围只有一边,那么条件排列顺序不能任意排列,需要注意顺序,从上往下,条件由严格到宽松

4、嵌套if选择结构

        语法:    

        if(条件1){      

        //代码块1

         if(条件2){      

        //代码块2  

        }else{    

         //代码块3

         }      

        }else{

         //代码块4

        if(条件3){

        //代码块5

        }else{

        //代码块6       

        }            

        }     

规律:          

判断条件1:    

        如果条件1为true,执行代码块1,继续判断条件2:         

        如果条件2为true,执行代码块3,执行完代码块3,结束整个嵌套if结构,继续执行嵌套if结构后面的代码       

        如果条件2为false,执行代码块4,执行完代码块4,结束整个嵌套if结构,继续执行嵌套if结构后面的代码    

        如果条件1为false,执行代码块4,继续判断条件3:       

        如果条件3为true,执行代码块5,执行完代码块5,结束整个嵌套if结构,继续执行嵌套if结构后面的代码     

        如果条件3为false,执行代码块6,执行完代码块6,结束整个嵌套if结构,继续执行嵌套if结构后面的代码

        注意: 

        1.不管if结构怎么嵌套,嵌套多少层,只需要严格按照If结构的执行规律做就可以了,满足条件就进入{}中执行对应代码,不满足条件,就不能进入{}中执行对应代码

        2.理论上,if结构可以任意层次的嵌套(想嵌套多少层就嵌套多少层),一般嵌套不要超过3层,超过3层,代码的可读性不好

二、switch选择结构

        语法:

        switch(表达式){

        case 值1:

        代码块1;

        break;

        case 值2:

        代码块2;

        break;

        .......

        case 值n:

        代码块n;

        break;

        default:

        代码块m;

        break;

        }

        执行规律:

        拿表达式的结果与case后面的值进行匹配,匹配上哪一个case值就执行对应的代码块,执行完代码块执行break语句,结束整个switch结构,继续往下执行switch结构之后的代码

        如果所有的case值与表达式的值都不匹配。那么执行default里面的代码块,执行完代码块执行break语句,结束整个switch结构,继续往下执行switch结构之后的代码

        注意:

        1.表达式的值可以是int、short、byte、char、枚举类型、String(JDK1.7版本及以后版本可以使用)

        2.case后面的值不能重复

        3.当表达式的值与所有case值不匹配时,执行default里的语句。default语句可以写在任意位置,一般写在末尾位置,default语句也可以省略不写,如果省略不写,表达式的值与所有case值又不匹配,那么真个switch结构就不会执行

        4.break的作用是结束整个switch语句,可以省略不写,如果省略不写,会造成“case穿透”现象。该现象可以合理使用。

        5.switch选择结构的表达式值是一个固定的值,所以switch选择结构只能处理多分支条件是等值的情况,多重if选择结构,既可以处理条件为等值的情况,也可以处理条件是一个范围的情况

三、获取随机数   

Math.random():随机返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

double result1 =Math.random();

System.out.println("result1:"+result1);

Math.random()*10:随机返回一个带正号的double值,该值大于等于0.0,且小于10.0

double result2 =Math.random()*10;

System.out.println("result2:"+result2);

(int)(Math.random()*10):随机返回一个带正号的int值,该值大于等于0,且小于10——随机获取0-9之间的整数

int result3 = (int)(Math.random()*10);

System.out.println("result3:"+result3);

(int)(Math.random()*(num2-num1)+num1):随机生成一个[num1,num2)(num2>num1)之间的int类型的整数        

随机生成一个[29,41)之间的int类型的数

int result4 = (int)(Math.random()*(41-29)+29);
       
System.out.print(result4+" ");

    
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值