java中的控制语句——if、switch、while、do-while、for、break、continue、return、throw

程序设计中的三大控制语句为,即顺序,分支、循环。java程序通过控制流语句来管理程序流,完成一定的任务。

  1. 顺序
    可以理解为从上到下依次执行的代码
  2. 分支语句
    if
    switch
  3. 循环语句
    while
    do-while
    for
  4. 跳转语句
    break、continue、return、throw

一、分支语句

1.1 if 语句
if结构
	if (条件表达式){
		语句组
	}
if-else结构
if(条件表达式){
	语句组1
}else{
	语句组2
}
if -else if…-else 结构
if(条件表达式1){
	语句组1
}else if(条件表达式2){
	语句组2
}else if(...){
	...
}else{
}
1.2 switch 语句
switch (表达式) {
	case 值1:
		语句组1
	case 值2:
		语句组2
	case 值3:
		语句组3
	...
	case 判断值n:
		语句组n
	default:
		语句组n+1
}

1. switch语句中的“表达式”计算结果只能是 int、byte、short、char。不能是long,更不能是其他的类型。
2. 每个case后面只能 跟个 int 、byte、 short、 char类型的常量。
3. 在执行case语句时,只有遇到break才跳出switch。
4. 当所有的case都没有执行时就执行default的语句

int testScore = 75;
char grade;
switch(testScore/10){
	case 9:
		grade ="优";
		break;
	case 8:
		grade = "良";
		break;
	case 7:
	case 6:
		grade = "中";
		break;
	default:
		grade = "差";
}
System.out.println("Grade = "+ grade);

输出的结果为:
Grade = 中
	

二、循环语句

在java中支持三种循环构造类型:while、do-while、for

2.1 while
while(循环条件){
	语句组
}
public class Demo5 {

	public static void main(String[] args) {
		int i = 0;
		while (i * i <100000) {
			i++;
		}
		System.out.println("i=" + i);
		System.out.println("i * i="+ (i *i));
	}
}

结果为:
i=317
i * i=100489

注意:while条件语句中只能写一个表达式,而且只一个布尔类型表达式,如果循环体中需要循环变量,就必须在while语句之前对循环变量进行初始化。

2.2 do-while语句

先执行再判断(不管循环条件是否满足,都会执行一次循环体,然后再判断循环条件。如果条件满足则执行循环体,不满足则停止循环。)

do{
	语句组
}while(循环条件);
public class Demo5 {
	public static void main(String[] args) {
		int i = 0;
		do {
			i++;
		}while(i *i<100000);
		System.out.println("i=" + i);
		System.out.println("i * i="+ (i *i));
	}	
}
结果为:
i=317
i * i=100489
2.3 for语句
for(初始化;循环条件;迭代){
	语句组
}

for(;;){
...
}
提示:初始化、循环条件、迭代部分都可以为空语句(但是分号不能省略),三者均为空的时候,相当与一个无限循环。

在初始化部分和迭代部分,可以使用逗号语句来进行多个操作
for(x = 0,y=10;x<y; x++,y--){
...
}

for语句的执行过程:
首先会执行初始化语句,它的作用是初始化循环变量和其他变量,然后程序会判断循环条件是否满足,如果满足,则继续执行循环体并计算迭代语句,之后再判断循环条件,如此反复,知道判断循环条件不满足时跳出循环。
for循环执行流程图:
在这里插入图片描述

2.4 for-each语句

专门用于遍历集合的for循环

public class Demo5 {
	public static void main(String[] args) {
		int[] num = {1,2,3,4,5,6,7};
		for(int item:num) {
			System.out.println("num is "+ item);
		}
	}	
}
item保存了集合中的元素,for-each 语句将集合中的元素一一取出来,并保存到item中

结果为:
num is 1
num is 2
num is 3
num is 4
num is 5
num is 6
num is 7

三、跳转语句

跳转语句能够改变程序执行顺序,可以实现程序的跳转。java中有四种跳转语句:break、continue、throw、return

3.1 break语句

break表示退出本循环,不再执行
有两种方式:

break;   //不带标签
break label;    //带标签,label 是标签名

不带标签的break语句使程序跳出所在层的循环体,而带标签的break语句使程序跳出标签指示的循环体。

不带标签的break;

public class Demo5 {
	public static void main(String[] args) {
		int[] num = {1,2,3,4,5,6,7};
		for(int i = 0;i<num.length;i++) {
			if(i==3) {
				break;
			}
			System.out.println("count is:"+i);
		}
	}	
}
结果为:
count is:0
count is:1
count is:2

带标签的 break;

public class Demo5 {
	public static void main(String[] args) {
		label1:for (int x=0;x<5;x++) {
			for(int y=5;y>0;y--) {
				if(y==x) {
					break label1;
				}
				System.out.printf("(x,y)=(%d,%d)",x,y);
				System.out.println();
			}
		}
	}	
}
结果为:
(x,y)=(0,5)
(x,y)=(0,4)
(x,y)=(0,3)
(x,y)=(0,2)
(x,y)=(0,1)
(x,y)=(1,5)
(x,y)=(1,4)
(x,y)=(1,3)
(x,y)=(1,2)
3.2 continue语句

continue语句用来结束本次循环,跳过循环体中尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。
有两种方式:

continue;
continue label;

不带标签的continue;

public class Demo5 {
	public static void main(String[] args) {
		int[] num = {1,2,3,4,5,6,7};
		for(int i = 0;i<num.length;i++) {
			if(i==3) {
				continue;
			}
			System.out.println("count is:"+i);
		}
	}	
}
count is:0
count is:1
count is:2
count is:4
count is:5
count is:6

带标签的continue;

public class Demo5 {
	public static void main(String[] args) {
		label2:for (int x=0;x<5;x++) {
			for(int y=5;y>0;y--) {
				if(y==x) {
					break label2;
				}
				System.out.printf("(x,y)=(%d,%d)",x,y);
				System.out.println();
			}
		}
	}	
}
结果为:
(x,y)=(0,5)
(x,y)=(0,4)
(x,y)=(0,3)
(x,y)=(0,2)
(x,y)=(0,1)
(x,y)=(1,5)
(x,y)=(1,4)
(x,y)=(1,3)
(x,y)=(1,2)

补充:PrintStream中常用的打印方法:
print(String s):打印字符串不换行。
println(String x):打印字符串换行。
printf(String format,Object…args):使用指定输出格式,打印任何长度的数据,但不换行。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小曾同学.com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值