Java中的控制语句(重量级的需要精通)

控制语句(重量级的需要精通)

控制语句的出现可以让我们的程序具有逻辑性/条理性,可以用控制语句来实现一个“业务”了。

控制语句包括几类?

选择语句

循环语句

转向语句

选择语句也可以叫做分支语句

if语句

switch语句

循环语句:主要循环反复的去执行某段特定的代码块

for循环

while循环

do…while…循环

转向语句

break

continue

return(这个目前先不需要学习,后面讲方法的时候会使用)

选择语句/分支语句if

if语句的语法结构以及运行原理?

​ if语句是分支语句,也可以叫做条件语句

​ if语句的语法格式:

第一种写法:
if(布尔表达式){

	Java语句;
	Java语句;  
}

​ 这里的一个大括号{}叫做一个分支。

​ if这个单词翻译为如果,所以又叫做条件语句

​ 该语法的执行原理是:

​ 如果布尔表达式的结果是true,则执行大括号中的程序,否则大括号中代码不执行

第二种写法:
if(布尔表达式){	//分支1
    java语句;
}else{			//分支2
    java语句;
}

执行原理:如果布尔表达式的结果是true,则执行分支1,分支2不执行。如果布尔表达 式的结果是false,分支1不执行,执行分支2.

​ 以上的这个语句可以保证一定会有一个分支执行。

​ else表示其他

第三种写法:
if(布尔表达式1){		//分支1
    java语句;
}else if(布尔表达式2){	//分支2
    java语句;
}else if(布尔表达式3){	//分支3
    java语句;
}else if(布尔表达式4){	//分支4
    java语句;
}...

以上if语句的执行原理?

​ 先判断“布尔表达式1”,如果布尔表达式1为true,则执行分支1,然后if语句结束了

​ 当“布尔表达式1”结果是false,那么会继续判断布尔表达式2的结果,如果布尔表

​ 达式2的结果是true,则执行分支2,然后整个if就结束了。

​ 从上往下依次判断,主要看第一个true发生在哪个分支上。

​ 第一个true对应的分支执行,只要一个分支执行,整个if结束。

第四种写法:
if(布尔表达式1){		//分支1
    java语句;
}else if(布尔表达式2){	//分支2
    java语句;
}else if(布尔表达式3){	//分支3
    java语句;
}else if(布尔表达式4){	//分支4
    java语句;
}else{
    java语句;			//以上条件没有一个成立的,这个else就执行了。
}
注意:
1.对于if语句来说,在任何情况下只能有1个分支执行,不可能存在2个或者更多个分支执行。if语句中只要有1个分支执行了,整个if语句就结束了。(对于1个完整的if语句来说的。)
2.以上4种语法机制中,凡是带有else分支的,一定可以保证会有一个分支执行。以上4种当中第一种和第三种没有else分支,这样的语句可能会导致最后一个分支都不执行。第二种和第四种肯定会有1个分支执行。
3.当分支当中“Java语句;”只有1条,那么大括号{}可以省略,但为了可读性最好不要省略。(有的程序员在编写代码的时候,可能会故意将大括号{}省略,你能看懂就行。)
public class Demo{
    public static void main(String[] args){
        boolean sex = true;
        if(sex)
            System.out.println("男");
        else
            System.out.printlm("女");
    }
}
4.控制语句和控制语句之间是可以嵌套的,但是嵌套的时候大家最好一个语句一个语句进行分析,不要冗杂在一起分析。
if(){
    //窍门:分析外面if语句的时候,里面的这个if语句可以看做是普通的一堆Java代码
    if(){
        if(){
            
        }else
        
    }else{
        
    }
}else{
    
}

switch语句

switch语句也是选择语句,也可以叫做分支语句

语法格式:

switch(){
        case1:
        java语句;
        break;
        case2:
        java语句;
        break;
        case3:
        java语句;
        break;
    default:
        java语句;
        break;
        
        
}

以上是一个完整的switch语句:

其中:break语句不是必须的。default分支也不是必须的

switch语句支持的值有哪些?

支持int类型以及String类型

但一定要注意JDK的版本,JDK8之前不支持String类型,只支持int在JDK8之后switch语句开始支持字符串String类型

switch语句本质上是只支持int和String,但是byte,short,char也可以使用在switch语句当中,因为byte 、short 、char可以进行自动类型转换。

switch语句中“值”与“值1”、“值2”比较的时候会使用“==”进行比较

switch语句的执行原理

拿“值”与“值1”进行比较,如果相同,则执行该分支的Java语句然后遇到“break;”语句,switch语句就结束了

如果“值”与“值1”不相等,会继续那“值”与“值2”进行比较,如果相同,则执行该分支中的Java语句,然后遇到break;语句,switch结束。

注意:如果分支执行了,但是分支最后没有“break;”此时会发生case穿透现象。

所有case都没有匹配成功,那么最后default分支会执行。

for循环语句

for循环的语法机制以及运行原理?

​ 语法机制:

​ for(初始化表达式;条件表达式;更新表达式){

​ 循环体;//循环体由Java语句构成

}

注意:

​ 第一:初始化表达式最先执行,并且在整个循环中只执行一次

​ 第二:条件表达式结果必须是一个布尔类型,也就是:true或false

执行原理:

​ 先执行初始化表达式,并且初始化表达式只执行一次。

​ 然后判断条件表达式的结果,如果条件表达式结果为true,

​ 则执行循环体。

​ 循环体结束之后,执行更新表达式的结果,

​ 如果还是true,继续执行循环体。

​ 直到更新表达式执行结束之后,再次判断条件时,条件为false

​ for循环终止。

其中初始化表达式,条件表达式,更新表达式,其实都不是必须的!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值