初学者学JAVA(三)——流程控制
菜鸟学JAVA(三)——流程控制
在程序设计中,我们常常会通过判断来执行不同的任务,或者循环执行有规律的任务。这样在JAVA中就有了选择控制语句,和循环控制语句。如果没有这些,那么计算机将顺序执行所有语句,这种情况太可怕了。
在程序设计中,我们常常会通过判断来执行不同的任务,或者循环执行有规律的任务。这样在JAVA中就有了选择控制语句,和循环控制语句。如果没有这些,那么计算机将顺序执行所有语句,这种情况太可怕了。
一、选择控制语句
选择结构是三大基本结构之一,通过选择控制语句实现。选择结构控制语句的功能是:根据所给条件,判断下一步进行两组或者若干组操作之中的一组。
1、if语句
if语句的常用形式:
if(表达式) {
操作语句组1;
}else {
操作语句组2;
}
判断条件是否成立,如果成立执行操作组1;否则执行操作组2.
例如:
if(a<b) { max = b ; } else{ max = a ; }
if语句还有另外一种形式:
if(判断条件1) 操作组1;
else if(判断条件2) 操作组2;
.
.
.
else if(判断条件n) 操作组n;
else 操作组n+1;
这是多种条件选择,1成立执行操作组1,否则判断2成不成立,如果成立这吃相操作组2,以此类推。
例如:
if(grade > 90) { System. out.print( "优秀"); } else if(grade > 80) { System. out.print( "良好"); } else if(grade > 60) { System. out.print( "一般"); } else { System. out.print( "不及格"); }
2、switch语句
switch语句是一种特别的选择结构控制语句,它处理多个分支的情况。
下面是switch语句的一般形式:
switch(表达式或者否一个变量){case 1: 操作组1;break;case 2: 操作组2;break;...case 3: 操作组n;break;default: 操作组n+1;}
其执行过程:switch语句首先计算表达式的值,当表达式的值和某个case后面的常量相同时,就执行该case里的操作语句,直到遇到break语句为止。
这里特别注意的是:如果某个case中没有使用break语句,一旦表达式和改case后面常量相同,程序不仅会执行该case里操作组,而且会继续执行后续case中的操作组,直到遇见break语句为止。
二、循环控制语句
在很多问题中,例如对某数组各元素赋值,多元素求和,排序等,都需要用循环来完成这些需要重复的操作。常见的循环语句有while、do-while和for。
1、while语句
while语句常见形式如下:
while(判断条件表达式) {
循环体;
}
当判断条件表达式是true时,执行气候的循环体;反之,跳出循环,执行接下来的语句。注意:判断条件表达式的结果必须是布尔值
例如下面用while求1+2+...+100的和。
public void testWhile(){ int i = 1, s = 0; while(i <= 100){ s = s + i; i++; } System. out.println(s); }
2、do-while语句
do-while语句和while语句很类似,常见形式如下;
do {
循环体;
} while (判断条件表达式);
与while不同的是,当第一次进入do-while时,它的判断条件为false时,仍然执行一次循环,先执行后判断。
例如下面用do-while求1+2+...+100的和。
public void testDoWhile(){ int i = 1, s = 0; do{ s = s + i; i++; } while(i<=100); System. out.print(s); }
3、for语句
for语句可以说是程序设计中使用最多的循环语句了,它更简便、灵活。
常用for循环语句格式是:
for(初始循环变量; 判断条件 ;循环变量变化) {
循环体;
}
其执行过程是:首先执行循环变量的初始化,接着检验判断条件是否成立,若成立则执行循环体,然后修改循环变量,再检验判断条件是否成立,成立则又执行循环体,周而复始。如果不成立结束循环。
public void testFor(){ int s = 0; for( int i = 0; i <= 100; i++) { s = i + s; } System. out.print(s); }
初始循环变量、判断条件、循环变量变化,理论上都是可以为空的,但不管那种形式,都要保证for语句可以正常结束,同时不能掉“;”
三、break与continue语句
1、break语句
在前面的switch中已经使用了break语句,break语句用于终止一个语句序列或一个循环,但是在switch中他只能终止case后的语句序列,不影响语句。当放在循环语句中,break可以终止循环,在没有达到循环终止条件的情况下跳出循环,执行之后的语句。
2、continue语句
除了break语句外,还有一个很有用的语句continue语句。其作用是跳过循环体后面的语句,接着执行下一次判断条件。
差别:它与break的主要是,break语句结束整个循环,直接执行该循环下的语句,可能还没达到循环终止条件;而 continue语句是结束此次循环的运行,转而判断下次是否可以执行循环,循环还在。
下面举一个这两个语句的用法
//break的用法 @Test public void testBreak() { for( int i = 0; i < 4; i++) { if(i != 3) { System. out.println( "i = " +i+ ",for循环继续,break还没有起作用 " ); } else{ System. out.println( "i = " +i+ ",break终止了for循环,哎呀!@! " ); break; } } } //continue的用法 @Test public void testContinue() { for( int i = 0; i < 6; i++) { if(i %2 != 0) { System. out.println( "条件成立,continue使后面的语句无法执行" ); continue; } System. out.println( "continue没有起作用,结果是:" + i); } }
今天复习到这里吧,每天一章不求多,但求理解,虽然非常非常的基础,但每过一遍都会有不同的收获。
送上一句话,一起共勉。
生活是一面镜子。你对它笑,它就对你笑;你对它哭,它也对你哭。
——高高兴兴过好每一天