Java笔记(五)switch语句,for语句打印菱形,break、return、continue跳转语句

switch语句

1、格式一览:      

switch(整数选择因子){

        case 整数值1:语句;

                                break;

        case 整数值2:语句;

                                break;

        ……

        default:语句;

        其中,“整数选择因子”必须是byte、short、int 和 char 类型。每一个 value 必须是“整数选择因子”类型兼容的一个常量,而且不能重复。“整数选择因子”是一个特殊的表达式,能产生整数值。switch语句能将整数选择因子的结果与每个整数值比较。若发现相符的,就执行对应的语句;若没有发现相符的,就执行default语句。

        在上面的定一个,每一个case均以一个break结尾,这样可以使执行流程跳转至switch主体的末尾(即程序自动结束switch语句)。这是构建switch语句的一种传统方式,但break是可选的。若省略break,会继续执行后面的case语句的代码,直到遇到一个break为止。注意最后的default语句并没有break,因为执行流程已经到了break的跳转目的地。当然,如果考虑到变成风格方面的原因,完全可以在default语句的末尾放置一个break,尽管它并没有任何实际用处。

        default可以不在末尾,它其实可以位于任意位置。但是不在末尾的时候,依旧需要在default后面加上break,不然程序会继续执行,因此这时的break也就不是起到装饰作用,而是有了实际用处。

        总结一下:switch语句停止执行,根据break的有无以及位置。switch语句只能对整型(字符型、枚举型)等式进行测试,而if语句可以处理任意数据类型的关系表达式、逻辑表达式。

----------------------------------------------------------------------------------------------------------------------------------

for语句的小笔记

        一般情况下,for循环语句的条件表达式有一个变量。但是允许有多个表达式,在初始化表达式的时候可以申明多个变量,每个变量用逗号隔开。

        比如:for ( int A=2,b=12 ; A<B ; A++,B-- ) {

                                …    }

【这个例子不错】案例:用“ * ”摆放菱形

         int n=7;       
	 int o=(n/2);
	 int t=1;
	 int step =2;
	 for(int i=0;i<n;i++){  //控制行的遍历	 
		 for(int j=0;j<Math.abs(o);j++){ //完成该行空格符打印
			 System.out.print((char)32);
			 } 		 
			 o--;	//下一行的时候空格符少1,设置上限
		 for(int k=1;k<=t;k++){	//完成该行符号“*”打印
			System.out.print("*");
		}	 
		t=t+step;	//符号“*”是按照1、3、5、7的规律,所以遍历一行要加2
		if(t==n){	//当到第四行时,这是分水岭的地方,规律变成7、5、3、1,所以遍历一行时要加-2
			step=-step;
		}
		System.out.println();//完成该行的打印工作后换行,进行下一行的图案输出		 
	 }

私以为比另一篇文章中的自己做的练习要好,当时自己在考虑打印的时候仅能做到拆分成两个for嵌套循环来完成菱形的打印,殊不知这个案例的想法很巧妙。

----------------------------------------------------------------------------------------------------------------------------------

break的功能

1、在switch中break可以终止一个语句。

2、退出一个循环:分为无标号退出循环和有标号退出循环。

    (1)无标号退出循环:是指直接退出循环,当在循环语句中遇到break语句时,循环会立即终止,循环体外面的语句也将会重新开始。如果break在嵌套循环中的内循环的话,只能跳出内循环,而外循环继续运行。

    在下面的例子中,不管for循环多少次,它都会在d=3的时候终止程序。

for(int d=0;d<19;d++){
	if (d==3)
		break;	
	System.out.println(d);
	}	

    执行效果:


    (2)有标号的break语句:在Java程序中,只有嵌套的语句中才可以使用有标号的break语句。在嵌套的循环语句中,可以在循环语句前加一个标号,在使用break语句时,就可以用break后面紧跟着的一个循环语句前面年的标号来退出该标号所在的循环。

    举例来说:

out:for(int x=0;x<10;x++){
	System.out.println("X= "+x);
	for(int y=0;y<10;y++){
		if(y==7){
			break  out;
		}
		System.out.println("Y= "+y);
	}
}

    执行效果:


注意点:戴有标号的break语句只能放在这个标号所指的循环里面,如果放到别的循环体会出现编译错误。另外,break后的标号必须是一个有效的标号,即这个标号必须在break语句所在的循环之前定义,或者在其所在循环的外层循环之前定义。break默认的就是结束其所在的循环。

----------------------------------------------------------------------------------------------------------------------------------

return语句

        在Java程序中,使用return语句可以返回一个方法的值,并把控制权交给调用它的语句。

        return后面的表达式是可选参数,表示要返回的值,它的数据类型必须是同方法声明中的返回值类型一致,这可以通过强制类型转换实现。在编写Java程序时,return语句被放在方法的最后,用于退出当前的程序,并返回一个值。故而return语句也是常用在递归中。

        如果把单独的return语句放在一个方法中间会出现编译错误。如果用户要把return语句放在中间,则可以使用条件语句if,然后将return语句放在一个方法中间,用来实现在程序中未执行的全部语句的退出。

举例:return语句放在中间的情况,以及return语句后面表达式的可选参数示范。

public class Try01 {
    public static int god(int a,int b){
	int min=a;
	int max=b;
	if(a>b){
	    min=b;max=a;
		}
	if(min==0){
	    return max;
		}	
	else{
	    return god(min,max-min);
		}
	}		
    public static void main(String[] args) {	
		System.out.println(Try01.god(75, 15));		
		}		
	}

执行效果:


----------------------------------------------------------------------------------------------------------------------------------

Continue跳转语句

        强制一个循环提前返回,也就是让循环继续执行,但不执行本次循环剩余的循环体中的语句

举例说明一下:

		for(int a=0;a<10;a++){
			System.out.print(a);
			if(a%2==0){
				continue;
			}
			System.out.println("$");
		}

上面代码是无标号的,continue其实也可以带标号。

执行效果:


continue的功能和break有点类似,区别是continue只是中止了本次循环,接着开始下一次循环;而break则是完全终止循环。

猜你喜欢

转载自blog.csdn.net/steriles_/article/details/80104429