您的位置:首页 > 职场人生

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

2013-04-11 22:58 555 查看
------- 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循环,但是此种情况需要判断组成 比较表达式 的变量是否为全局变量,如果是全局变量,则不可转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: