写点什么

java 入门基础三 (执行语句),Java 多线程面试题大全含答案

用户头像
极客good
关注
发布于: 刚刚


示例:



if(false){


System.out.println("...代码块 1...");


}else if(false){


System.out.println("...代码块 2...");


}else if(f


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


alse){


System.out.println("...代码块 n...");


}else{ //最后的 else 可有可无,当所有条件不满足时,执行。


System.out.println("...else 代码块...");


}


System.out.println("if 分支以外的代码");

[](

)if 嵌套


根据实际需要,if 语句可以在程序中无限嵌套,语法规则按照上述三种即可。


示例:


if(true){


System.out.println("第一个 if 代码块");


if(true){


System.out.println("第二个 if 代码块");


}else if(true){


System.out.println("第三个 if 代码块");


}else{


//


}


}else if(false){


//


}else{


//


}

[](

)7.2.2 switch 分支

[](

)switch 基础


语法结构:


switch(表达式){


case 值 1:


…代码块 1…


break;


case 值 2:


…代码块 2…


break;


case 值 n:


…代码块 n…


break;


default:


…default 代码块…


break;


}



理解:


表达式的结果可以是:byte、short、int、枚举(JDK1.5)、String(JDK1.7)


分别和值 1、值 2、值 n 比较,比较结果相等,开始执行 case 后对应的代码块,break 代表跳出 switch 分支语句,即 switch 结束,如果不在代码块后加 break,程序将会从当前 case 开始依次执行,直到结束或遇到 break。


default 代码块类似于 else{},代表否则,根据需求可写可不写,所在位置也非固定在 switch 结构最后。



示例:



Scanner sc =new Scanner(System.in);


System.out.println("输入一个数学成绩");


String math = sc.next();


switch(math)


{


case "90":


  System.out.println("优秀");


break;


case "80":


  System.out.println("优良");


break;


case "70":


  System.out.println("良好");


break;


case "60":


  System.out.println("及格");


break;


default:


  System.out.println("不合格");


break;


}

[](

)if 和 switch


  1. if 的表达式结果必须为 boolean 类型,而 switch 的表达式有多种(byte,short,int,枚举,String)


  1. if 能够判断单个值,区间以及复杂的条件,而 switch 只能判断单个值,但结构清晰,比较方便,更加易读。

[](

)重点注意


  1. case 的值绝对不能相等。


  1. default,break 可以省略,但会改变代码逻辑,且 case 后也可以直接跟 case,表示多种情况都是执行同一代码块。



示例(判断输入月份的季节):



switch(month){


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;


case 12:case 1:case 2:


System.out.println("冬");


break;


}



  1. case 后面的值类型可以不一样,但必须要兼容,如 char 和 int



示例:



switch('a')// 'a'的 ASCII 码为 97


  {


    case 97:


      System.out.println("case为97的代码块");


    break;


    case 'b':


      System.out.println("case为98的代码块");


    break;


    default:


      System.out.println("default的代码块");


    break;


  }


//输出结果为 case 为 97 的代码块



  1. switch 表达式的类型为什么只有 byte、short、int、枚举(JDK1.5)、String(JDK1.7)?


switch表达式的结果在底层只接受int  


byte自动转型成int  


short自动转型成int  


枚举的对象系统会给他赋int值  


String是获取的ASCII码


[](


)7.3 循环语句



[](

)7.3.1 for 循环

[](

)for 基础


语法结构:


for(表达式 1;表达式 2;表达式 3){


…代码块…


}


理解:


表达式 1:初始化变量


表达式 2:判断条件


表达式 3:更新变量


执行流程:


1.初始化变量


2.判断条件:判断条件的结果必须是 boolean


2.1 true - 执行代码块,并更新变量,重复第 2 个步骤


2.2 false- 跳出整个循环语句

[](

)for 嵌套


示例:打印如下图案









    代码:



    int n=3; //设置图案的高度为 3


    for(int i=0;i<n;i++){


    for(int j=0;j<n+i;j++){


      if(i+j<n-1)System.out.print(" ");
    


      else System.out.print("*");
    


    }


    System.out.println();


    }


    示例:打印九九乘法表



    for(int i = 1;i<=9;i++){


    for(int j = 1;j<=i;j++){


      System.out.print(j + "x" + i + "=" + (i*j) + "\t");
    


    }


    System.out.println();


    }

    [](

    )重点注意:


    注:



    1. for( ; ; ) 表达式 123 都为空,会出现运行的死循环。(需要避免!)



    1. 伪死循环的概念:非无限死循环,程序最终能够完成循环,但需要执行的次数过于庞大。(需要避免!)



    例:
    



    for(int i = 0;i>=0;i++) {} 
    



    ? 因为int类型取值范围为21亿多(具体可参照java入门基础一 4.3.1),所 以 for循环次数也为21亿多次,直到i的值为负数,循环才能结束。
    



    1. 在 for 循环中定义并且初始化的变量,只能够在 for 循环中使用,如果想要在整个方法中使用,需要在 for 外定义。


    [](

    )7.3.2 while 循环


    语法结构:



    ? while(表达式){


    ? …while 代码块…


    ? }



    理解(与 if 分支有相似之处):


    表达式的结果必须是 boolean


    true - 执行代码块


    false- 跳出循环



    死循环:



    while(true){


      System.out.println("死循环");
    


    }

    [](

    )7.3.3 do-while 循环


    语法结构:


    do{


    …代码块…


    }while(表达式);



    理解:


    表达式的结果必须是 boolean


    true - 执行代码块


    false- 跳出循环



    执行顺序:



    ? 1.先执行一遍代码块


    ? 2.判断表达式


    ? 2.1 true - 执行代码块,再重复 2


    ? 2.2 false- 跳出循环

    [](

    )拓展:for、while 和 do while


    语法结构的区别:


    for(初始化变量;判断条件;更新变量){}


    while(判断条件){}


    do{}while(判断条件);


    循环共同点:判断条件的结果都是 boolean 值,true-循环 false-跳出循环


    执行顺序的区别:


    for:先判断,再执行


    while:先判断,再执行


    do-while:先执行一遍,再判断



    应用场景的区别:


    循环次数确定:for


    循环次数不确定,先判断,再执行:while


    循环次数不确定,先执行一遍,再判断:do-while


    [](


    )7.4 特殊的流程控制语句



    [](

    )7.4.1 break


    1. 作用:作用于循环中,表示跳出当前循环(即执行到 break 直接退出当前循环,不再操作任何循环内的语句)



    1. 示例:



    while(true){
    


      System.out.println("1");
    


      System.out.println("2");
    


      if(true){
    


        break;
    


      }
    


      System.out.println("3");
    


      System.out.println("4");
    


    }
    


    /*
    


    输出结果:
    


    1
    


    2
    


    */ 
    



    注:break跳出当前循环,若是循环多重嵌套,break在内层循环时,一次只能调到外层循环中,而不能直接结束所有循环。(若是想要通过break结束任意对应循环,可参照7.4.4 lable)
    


    [](

    )7.4.2 continue


    1. 作用:作用于循环中,表示跳过当前循环剩余的部分,进入到下一次循环(即执行到 continue 时,立即越过当前一次的循环。)



    1. 示例



    for(int i=0;i<3;i++){
    
    用户头像

    极客good

    关注

    还未添加个人签名 2021.03.18 加入

    还未添加个人简介

    评论

    发布
    暂无评论
    java入门基础三(执行语句),Java多线程面试题大全含答案