黑马程序员_JAVA中的判断结构、选择结构和循环结构

------- android培训java培训、期待与您交流! ----------


判断结构

1、JAVA中的判断结构,即if……else结构,其基本格式如下:

		if( 比较表达式 ) {
			比较表达式为真时需要执行的代码
		}else{
			比较表达式为假时需要执行的代码
		}



2、在需要执行的代码比较少,只有一行时,也可以将{}省略,写成:

		if( 比较表达式 ) 
			比较表达式为真时需要执行的代码
		else
			比较表达式为假时需要执行的代码

3、有时也可以省略掉else,写成:

		if( 比较表达式 ) 
			比较表达式为真时需要执行的代码
		比较表达式为假时需要执行的代码


4、如果需要判断的条件比较多,也可以写成多个if嵌套的判断形式,该形式的效果类似选择结构:

	if( 比较表达式1 ){
		if( 比较表达式2 ){
			需要执行的代码
		}else{
			需要执行的代码
		}
	}else {
		需要执行的代码
	}


5、如果有很多个条件需要判断,但是条件间并无包含关系,则可以写成这样,效果类似选择结构,但是不会受限于判断的类型:

	if( 比较表达式1 ){
		需要执行的语句
	}else if( 比较表达式2 ){
		需要执行的语句
	}else{
		需要执行的语句	
	}

选择结构

JAVA中的选择结构即switch……case结构,通过判断switch中的key的值,来确定选择哪个case执行,如果没有符合的case,则执行default的代码,基本格式如下:

		//key值必须是个基本数据类型的值,不能是引用类型的值。1.7版本前,key值不能为String类型。
		switch (key) {
		//value必须是常量,不能是变量
		case value:
			//break并非必要,但是若无break语句用于跳出,则程序会顺序执行,也就是说,可能会执行几个case中的代码
			需要执行的代码
			break;

		//默认执行的代码,如果没有符合key值的case,则执行default中的代码
		default:
			需要执行的代码
			break;
		}


case中所处的位置和值没有必然关系,也就是说,并不是value小的case就必须放在value大的case之上。

switch语句结构用于选择多个条件时效率比if判断结构高,但是因为受限于key值的类型,以及范围判断的情况,使用上并不如if判断结构灵活。


循环结构

JAVA中循环结构有3种

1、while循环结构

基本格式如下:

		while( 比较表达式 ){
			需要循环的代码
		}

如果比较表达式的结果为真,则执行 需要循环的代码 ,否则不执行循环。

2、do……while循环结构

基本格式如下:

		do{
			需要循环的代码
		}while( 比较表达式 );

先执行do中的代码一次,然后判断,如果比较表达式的结果为真,则继续执行 需要循环的代码,否则循环结束。

3、for循环结构

基本格式如下:

		for( 初始条件; 比较表达式 ; 最后执行的代码 ){
			需要循环的代码
		}

程序执行时会先执行 初始条件 ,然后判断 比较表达式 的结果 如果为真则执行 需要循环的代码 ,然后执行 最后执行的代码 ,再判断比较表达式的结果,根据结果确认是否需要再次循环。

注意:for循环中的 初始条件 、比较表达式 以及 最后执行的代码 都可以省略不写,但是都不写的情况下,循环没有意义。一般最少要写 比较表达式 的部分

4、三种循环结构的比较和注意事项

1)while循环结构比较简单,只有一个比较表达式即可,但是组成比较表达式的各个变量(如果有的话)必须要在循环外定义,这让会占用额外的空间。

2)do……while循环结构因为先要执行一次do中的代码再做判断,所以可能带来额外的风险,因为do中的代码已经被执行过一次了。逻辑上不是很好分清需要执行的部分和不需要执行的部分。

3)for循环需要的条件比较多,写起来需要理清头绪方能下手。但是定义在for循环初始条件中的变量,在循环结束后就会被释放,从这点看来,优于while循环。

4)循环结构的 比较表达式 ,如果结果是常量,则循环是死循环,需要避免这种情况。

5)for循环和while循环可以简单的互相转换,只需要把for循环中的 初始条件部分移出循环体,再将最后执行的代码放到循环体内最后一行,再将 比较表达式 作为 while的 比较表达式 ,即实现了for循环转换成while循环。同理可得while循环转换成for循环,但是此种情况需要判断组成 比较表达式 的变量是否为全局变量,如果是全局变量,则不可转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值