Play Open
Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait

java入门基础三(执行语句)

if(表达式){

…代码块…

}

理解:表达式的结果必须是boolean类型

true - 执行代码块

false - 跳出if分支

示例:

if(false){

System.out.println(“…代码块…”);

}

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

if else 分支

语法结构:

if(表达式){

…代码块…

}else{

…else代码块…

}

理解:

表达式的结果必须是boolean

true - 执行代码块

false- 执行else代码块

示例:

if(false){

System.out.println(“…代码块…”);

}else{

System.out.println(“…else代码块…”);

}

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

注:else使用必须和if一一对应,不能单独使用

if else if 分支

语法结构:

if(表达式1){

…代码块1…

}else if(表达式2){

…代码块2…

}else if(表达式n){

…代码块n…

}else{

…else代码块…

}

理解:

表达式的结果必须是boolean

从上往下依次判断表达式,哪个表达式先为true,就执行对应的代码块

所有的表达式都不为true,就执行else代码块

注意:else{}根据需求可写可不写

示例:

if(false){

System.out.println(“…代码块1…”);

}else if(false){

System.out.println(“…代码块2…”);

}else if(false){

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

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

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

重点注意

case的值绝对不能相等。

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;

}

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的代码块

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

for(int j=0;j

if(i+j

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();

}

重点注意:

注:

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

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

例:

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

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

在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

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

示例:

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

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

示例

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

System.out.print("1");

System.out.print("2");

if(true){

continue;

}

System.out.print("3");

System.out.print("4");

}

/*

输出结果:

121212

*/

解释:示例中的for循环,每次都跳过了3和4的输出语句。

7.4.3 return

作用:作用于当前方法,表示立即结束当前方法的执行。

示例:

public static void main(String[] args){

System.out.println("1");

System.out.println("2");

if(true){

return;

}

System.out.println("3");

System.out.println("4");

}

/*

输出结果:

1

2

*/

解释:return作用的当前方法为main方法,执行到return时,直接结束main方法的执行。

7.4.4 lable

作用:标记循环,给循环贴上标签,lable标签需要和break一起使用,表示结束标签对应的循环。

Posted in 图鉴收藏
Previous
All posts
Next