04、选择、循环判断语句

流程控制语句

顺序结构:从上往下,依次执行运算
选择结构:按照不同的选择,执行不同的代码
循环结构:根据条件重复做一些代码

if 判断(三种)

if(条件表达式){
	执行语句;
}
if(条件表达式){
	执行语句;
}
else{//否则
	执行语句;
}
if(条件表达式){
	执行语句;
}
else if (条件表达式){
	执行语句;
}
……
else{
	执行语句;
}

注意点:
1、关系表达式不论简单与否,结果都是 boolean 类型
2、if 语句的语句体如果是一条语句(并不代表是一行)时,可省略大括号
3、else 后如果没有 if 的话,是不需要写关系表达式的
4、所有的三目表达式都可以用 if 语句的第二种形式来实现,反之不成立
5、格式一适合单一判断,格式二适合两个判断,格式三适合多个判断
6、一般情况下,有左大括后就没有分号,有分号就没有左大括号

switch 判断

表达式可以是 byte,short,int,char,枚举,字符串
JDK5 以后可以使用枚举
JDK7 以后可以使用字符串
case:后面的值就是要和表达式进行比较的值,数据类型要和表达式的结果值类型一致
default:所有其他情况都不匹配的情况下执行

switch(表达式){
	case 取值1:
		执行语句;
		breakcase 取值2:
		执行语句;
		break;
	…...
	default:
		执行语句;
		break}

注意点:
case 后面只能是常量,不能是变量,而且多个 case 后面的值不能出现相同的值
default 可以省略,建议不省略(已做提示)
break 可以省略,但是结果有可能不是我们想要的结果,根据不同业务逻辑选择是否省略
default 可以放在任意位置,建议放在最后
switch 的结束条件:
1、遇到 break;
2、自然的执行到 switch 语句末尾

if 和 switch 的应用

if:
1、对具体的值进行判断
2、对区间判断
3、对运算结果是 boolean 类型的表达式进行判断
switch:
1、对具体的值进行判断
2、值的个数通常是固定的
对于几个固定的值判断,建议使用 switch 语句,因为 switch 语句会将具体的答案都加载进内存,效率相对高一点

while 循环

while(条件表达式){
	执行语句;
}

do while 循环

do{
	执行语句;
}while(条件表达式);

特点:无论条件是否满足,循环体至少执行一次

for 循环

for(初始化表达式;循环条件表达式;循环后的操作表达式){
	执行语句;(循环体)
}

注意点:
1、判断条件语句无论简单与否,结果都是boolean类型
2、循环体语句如果只有一条,可以省略大括号,但是强烈不建议省略
3、有分号就没有左大括号,有左大括号就没有分号

增强 for 循环

内在还是用的迭代器,替代迭代器
格式:

for(元素数据类型 元素变量 :  数组或集合){
         使用元素变量
}

for 和 while 的特点

1、for 和 while 可以互换
2、格式上的不同,在使用上有点小区别
如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了
使用上的区别:
1、for 语句的控制条件变量,在循环结束后不能再使用
2、while 语句的控制条件变量,在循环结束后还可以再使用
理解上的区别:
1、for 适合一个范围的判断
2、while 适合次数不明确的判断

三种循环的注意事项

do while 至少执行一次循环体
for 和 while 必须先判断条件是否为 true,然后才决定是否执行循环体语句
循环使用的注意点:
一定要注意修改控制条件,否则容易死循环
最简单的死循环:
for( ; ; ){}
while(ture){}
for 循环嵌套注意点:
在嵌套 for 循环中,将循环次数多的循环放在内侧,循环次数少的循环放在外侧,其性能会提高;
减少循环体中变量的定义和赋值(实例化),其性能也会提高
for 循环一般嵌套2层,最多三层,不要嵌套多层,会是自己思维混乱

break:跳出、中断

作用的范围:要么是 switch 语句,要么是循环语句
跳出单层循环
跳出多层循环,需要标签语句的配合(不常用)
例如:

//跳出单层循环
for (int x = 0; x < 10 ; x++){
	if (x == 5){
		break;
	}
	System.out.println("x= "+x);
}
//for循环嵌套
for (int x = 0; x < 3; x++ ){
	for (int y = 0; y < 4; y++){
		if (y == 2){
			//仅仅跳出内层循环
			break;
		}
		System.out.println("y = "+ y);
	}
	System.out.println("x= "+x);
}
wc:for (int x = 0; x < 3; x++ ){
	nc:for (int y = 0; y < 4; y++){
		if (y == 2){
			//跳出外层循环
			break wc;
		}
		System.out.println("y = "+ y);
	}
	System.out.println("x= "+x);
}

continue:继续

可用在循环中
跳出单层循环的一次,还有下一次的循环
例如:

for(int i=0;i<10;i++){
	if(i==4){
		continue;
	}
System.out.println("i:"+i);
}
i:0
i:1
i:2
i:3
i:5
i:6
i:7
i:8
i:9

return:返回

用于结束方法和返回方法指定的值
一旦遇到 return,大多数情况(try catch finally)就不会继续往后执行
例如:

for(int i=0;i<10;i++){
	if(i==4){
	return;
}
System.out.println("i:"+i);
}
System.out.println("over");
i:0
i:1
i:2
i:3
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值