控制执行流程
if-else 、while 、do-while 、 for 、return 、break 、 continue 、switch
if-else
if-else 语句是控制程序流程的最基本的形式,其中的else 是可选的。
int v = 9;
int k = 5;
if ( v > k ){
System.out.print("v大于k");
}else{
System,out.print("v不大于K");
}
while
while 、do-while 、 for 都是用来控制循环的,有时将他们划分为迭代语句(interation 、 statement)。语句会重复执行,直接起控制作用布尔表达式(Booleanexpression)得到“假”的结果为止
while :最少可以不进循环, 如果条件不成立,将不会进入循环体。
int v= 4;
while(v > 1){
System.out.print(" v > 1");
v--;
}
System.out,print(" 退出循环");
do - while
do - while : 与while不同的是,不管条件是否成立,最少执行一次循环体。
do{
Systom.out.print(" 我是do-while, 我最少执行一次 ");
}while( false);
int v = 2;
do(
System.out.print(" 我是do-while! ")
v++;
)while(v <= 3)
while和do-while 唯一的区别就是do-while的语句至少会执行一次,即便表达式第一次就被计算为false。而在while循环结构中,如果条件第一次就是false,那么其中的语句根本不会执行,在实际应用中,while比do-while更常用一些。
for 循环
for 循环可能是在最经常使用的迭代形式,这种在第一次迭代之前要进行初始化,随后,它会进行条件测试,而且在每一次迭代结束时,进行某种形式的 “进步” 。
for(int i= 0 ; i < 5 ; i++ ){
System.out.println(" i = " + i);
}
for 逗号操作符
for (int i = 1 , j = i + 10; i > 5; i++ , j = i * 2) {
System.out,println( " i =" + i + " j = " + j)
}
foreach 语法
foreach:不必在创建int 变量去对由访问项构成的序列进行计数。foreach将自动生产每一项
for( Char c : " An African Swallow".toCharArray()){
System.out.print( c + " ");
}
return break continue它们只是表示这个分支无需任何测试即可发生,跳转到标识号语句的方式。
return 关键词有两个方面的用途,一个方面是指定一个方法返回什么值(假设它没有void),另外一个方面它会导致当前的方法退出,并返回那个值。
public static int test(int v , int k){
if( v > k ){
return +1;
}else if( v < k ){
return -1;
}else{
return 0;
}
}
public static void main(Strinrg[] args){
System.out,println( test(10 , 8));
System.out,println( test(5 , 3));
System.out,println( test(8 , 8));
}
执行了return 后面将不再执行。
break 和 continue 在任何迭代语句的主体部分,都可用break和continue控制循环的流程。
其中break用于强行退出循环,不执行循环中剩余的语句,如果是多层迭代,它只会退出当前层的循环。
而continue则是停止执行当前的迭代,然后回退循环开始出,开始下一次迭代,如果是多层迭代,它只会停止当前层的迭代,。
for (int i = 1 ; i < 5 ; i++){
if(i == 3)
break; // 结束循环
}
for(int i = 1; i < 5; i++){
for(int j =0 ; i > j ;j++){
if(j == 2)
break; //结束内部的for循环
}
}
for(int i = 1 ; i<5; i++){
if(i == 3){
continue;
}
System.out.print("i = " i)
}
int i = 0;
while(true){
i++;
int j =i * 27;
if( j == 1269) break;
if( i%10 != 0) continue;
}
switch : 有时也不会被划归为一种选择语句。根据整数表达式的值,switch语句可以从一系列代码中选出一段去执行。
格式:
switch (integral-selector){
case integral-value1 : statement; break;
case integral-value2 : statement; break;
case integral-value3 : statement; break;
default: statement;
}
其中 integral-selector(整数选择因子)是一个能够产生整数值的表达式,switch能将这个表达式的结果与每一个integral-value(整数值)相比较,若发现相符就执行对应的语句(单一语句或多条语句,其中不需要大括号)。若没有发现相符的将会执行default(默认)语句。
在上面定义中,大家会注意到每个case后面都以break结尾,这样可使执行流程跳转至switch主体的末尾。这是构建switch语句的一种传统方式,但break是可选的。若省略掉break,会继续执行后面的case语句,一直到遇到break为止。
注意最后的default没有break;因为执行流程已到了break的跳转目的地。(放一个也没关系,没啥效果)