第四天 控制语句

作用

控制语句的出现让程序更具有逻辑性、条理性

选择语句
if语句
  • 注意事项
    1. 对于多个if语句,在任何情况下,只能有一个分支执行,不可能存在多个分支执行
    2. if语句的4钟写法中,只要带有else语句,该if语句就一定会执行,否则有可能不会执行
    3. 在分支语句当中,如果Java语句只有一条,那么{}可以省略,但是为了可读性,一般不会省略
public class Test02 {
    public static void main(String[] args) {        
        if (true) System.out.println("大括号可以省略");    
    }
}

4. 控制语句和控制语句之间是可以嵌套的,但是嵌套的时候,最好一个语句一个语句分析,不要冗杂在一起分析
  • 语法格式及四种写法
public class Test03 { 
    public static void main(String[] args) {
        int a = 9;
        //        写法一:
        if (a > 0){
            System.out.println("执行");       
        }        
        /* 执行原理:布尔表达式如果是true,则执行大括号里面的程序,
                    否则大括号里面的代码不执行 * */
        
        
        //        写法二:        
        if (a < 0){ 
            System.out.println("不执行");     
        } else {        
            System.out.println("if语句不执行的时候,else语句执行");      
        }       
        /*执行原理:若布尔表达式为true,则执行分支1,
                  如果布尔表达式的结果是false,则分支1不执行,执行分支2* */
        
        
        //        写法三:  
        if (a > 0){       
         System.out.println("执行");  
        } else if (a > 5){      
            System.out.println("不执行,因为if语句在任何情况下,只能有一个分支执行");     
        } else if (a > 8){     
          System.out.println("不执行,因为if语句在任何情况下,只能有一个分支执行");   
        }        
        /*先判断“布尔表达式1”,如果为true,则执行分支1,然后if语句结束  
                若“布尔表达式1”为false,则会继续判断布尔表达式2的结果      
                从上往下一次判断,主要看第一个true发生在哪个分支上       
                第一个true对应的分支执行,只要一个分支执行,整个if语句结束* */
                
                
        //        写法四:      
        if (a > 10){        
           System.out.println("不执行");  
        } else if (a > 11){      
          System.out.println("不执行,判断语句结果为false");   
        } else if (a > 20){     
           System.out.println("不执行,判断语句结果为false");  
        } else {      
           System.out.println("if语句不执行的时候,else语句执行");   
        }       
        /** 如果if和else if 都不满足,就执行else里面的Java语句* */  
        
        
    }
}

switch语句
  • 注意事项
    1. JDK8之前的版本不支持String类型
    2. switch语句中:”值”与“值1”、“值2”、“值3”比较的时候会使用“==”进行比较
    3. switch语句本质上只支持int和string,但是byte、short、char也可以在switch语句当中,因为这三者可以进行自动类型转换
    4. 若switch语句的分支的最后没有break语句,则会出现分支穿透现象
    5. 若所有的case语句都没有执行,则最后的default分支会执行
    6. case合并现象
public class Test04 {    
    public static void main(String[] args) {     
        //完整的switch语句     
        //根据键盘的输入,判断星期几       
        System.out.print("输入[0~6]的整数:");      
        java.util.Scanner s = new java.util.Scanner(System.in);   
        int num = s.nextInt();     
        switch(num){             
        case 6: case 7: case 8:       
            //case合并现象              
            System.out.println("星期六");          
            break;               
        default:        
            System.out.println("请输入正确的数字");   
        }  

    }
}

  • 语法格式
public class Test04 {    
    public static void main(String[] args) {     
        //完整的switch语句     
        //根据键盘的输入,判断星期几       
            System.out.print("输入[0~6]的整数:");      
        java.util.Scanner s = new 
        java.util.Scanner(System.in);   
        int num = s.nextInt();     
        switch(num){         
        case 0:           
            System.out.println("星期天");         
            break;        
        case 1:       
            System.out.println("星期一");       
            break;    
        case 2:         
            System.out.println("星期二");          
            break;       
        case 3:             
            System.out.println("星期三");       
            break;     
        case 4:          
            System.out.println("星期四");          
            break;          
        case 5:      
            System.out.println("星期五");        
            break;        
        case 6: case 7: case 8:       
            //case合并现象              
            System.out.println("星期六");          
            break;               
        default:        
            System.out.println("请输入正确的数字");   
        }  

    }
}

  • 执行原理:
    拿”值“和”值1“、”值2“、”值3“进行比较,
    若相同,则执行该分支中的Java居于,然后遇到break语句,switch语句就结束了
    若不相同,则接着进行比较

    • break;语句和default分支不是必须的
循环语句
for循环
  • 注意事项
    • for循环内部的变量需要定义类型
    • for循环里面的变量是一个局部变量,for循环结束之后,内存就释放了,即该变量只能在该for循环内部使用
    • 当for循环内部使用的变量放在for循环之外,那么for循环的算数运算符++,会影响该变量
public class Test05 {
    public static void main(String[ ] args){
        int i = 1;
        
        for( ; i < 10; i++){
            System.out.println("i = " + i);
        }
        
        System.out.println("for循环外部的i=" + i);   //for循环外部的i=10
        
        }        
}
  • 语法格式

    • for(int i = 1; i < 10; i++){ System.out.println(i); }
    • for(变量; 判断条件; 变量改变){ Java语句; }
  • 两层for循环

public class Test06{
    public static void main(String[ ] args){
    
        for(int i = 0; i < 10; i++){
            for(int j = 0; j < 10; j++){
                System.out.print(j);
            }
            System.out.println();
        }
        
    }
}
增强for循环
  • 注意事项

    • JDK5.0 之后推出的一个新特性:增强for循环,或者叫做:foreach
    • 缺点:没有下标,所以在需要使用下标的循环中不建议使用foreach
    • for()里面是一个冒号,而不是分号
  • 语法格式

    • for(元素类型 变量名:数组或者集合){Java语句;}
public class Test07{
    public static void main(String[] args){
        //数组
        int[] a = {1,2,3,4};
        //使用增强for循环
        for(int i : a){
            System.out.println(i);
        }
        
    }
}

while循环
  • 注意事项

    • while循环的循环次数为:0~n次
    • 本质上while循环和for循环是完全相同的
    • for和while可以互换,只是语法格式不一样而已
    • for和while循环都可以互相嵌套
  • 语法格式

    • while(布尔表达式){循环体;}
public class Test08{
    public static void main(String[] args){
    
        int a = 10;
        while(a > 0){
            System.out.print(a + " ");
            a--;
        }
        
    }
}
//输出:10 9 8 7 6 5 4 3 2 1 
  • 执行原理
    • 判断布尔表达式若为true,则执行循环体若为false,则推出循环
do…while循环
  • 注意事项

    • do··while的while语句的最后有分号
    • 先斩后奏,不论如何do··while都会执行一次循环体
    • 记得要写终止循环的语句
  • 语法格式

    • do{循环体;}while(布尔表达式);
public class Test09{
    public static void main(String[] args){
    
        int a = 10;
        do{
            System.out.println(a + " ");
            a--;
        }while(a > 0);
        
    }
}

//输出:10 9 8 7 6 5 4 3 2 1 
  • 执行原理
    • 先执行循环体再进行判断若为true,则继续执行循环体若为false,则退出循环
转向语句
break语句
    • break翻译为折断
    • break可以用在switch语句中,来种植switch语句的执行,防止case穿透现象
      • 用在循环语句当中,终止循环语句的执行
    • break会终止离他最近的循环
    • break语句的执行不会使整个方法结束,而是来终止最近的循环
    • break只会终止最近的一个循环
    • 可以终止指定的循环
continue语句
  • 作用

    • 终止当前“本次”循环,直接进入下一次循环继续执行
  • 语法机制


for( ){
    if( ){
        comtinue;
        //当这个continue语句执行的时候,continue下面的代码不执行,直接进入下一次循环
    }
}
    • continue也可以指定循环 —— 代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值