Java 跳转语句

本文最后更新于:2024年3月18日 凌晨

Java 跳转语句

break语句

在switch语句中,break语句已经得到应用,在各类循环语句中,break语句也给我们提供了一种方便的跳出循环的方法,它有两种使用形式:

  • break:不带标号,从break所处的循环体中直接跳转出来。

  • break标号名:带标号,跳出标号所指的代码块,执行块后的下一条语句。

注意

给代码块加标号的格式如下:

1
BlockLabel:{codeBlock}

利用break语句可以改写前面的很多例子,例如,例3-8引入了布尔变量来控制循环,且采用while循环,实际上,也可以用for循环来实现,代码如下:

1
2
3
4
for (int k = 2; k <= (n - 1); k++) {
if (n % k == 0)
break; // 发现有一个数能除尽n就不是素数。
}

在这种情况下,要在循环外再来看是否为素数就只能看循环控制变量的值,但由于这里将k定义为循环局部变量,循环结束它的值就无效了,解决办法是将k在循环前定义,这样判断是否为素数只要看k是否等于n即可。

[例3-9]:4位同学中一位做了好事,班主任问这4位是谁做的好事,A说"不是我",B说"是C",C说"是D",D说"C胡说",已知4人中3个人说的是真话,一个人说的是假话,根据这些信息,找出做了好事的人。

分析:这是一个逻辑问题,用算法语言解决此类问题通常要用循环区测试所有可能的情形,不妨用数字1,2,3,4分别代表A,B,C,D4位同学,man代表做好事的那位同学,显然,man是在1到4之间取值,可以用循环去测试,将每个人说的话用逻辑进行表达,考虑到要计算3个人说的话为真话,可以将每个人说话的正确性用1和0表示,1代表真话,0代表假话,这样计算3个人说真话就可容易用表达式表达。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Ex3_9{
public static void mian(String args[]){
int man;//1--A,2--B,3--C,4--D
for(man = 1;man <= 4;man++){
int a = (man != 1)?1:0;
int b = (man == 3)?1:0;
int c = (man == 4)?1:0;
int d = (man != 4)?1:0;
if(a + b + c + d == 3)
break;
}
switch(man){
case1:
System.out.println("the man is A");
break;
case2:
System.out.println("the man is B");
break;
case3:
System.out.println("the man is C");
break;
case4:
System.out.println("the man is D");
}
}
}

the man is C

说明:本例是一个逻辑表示问题,第5~8行是核心,仔细体会如何将4个人说话的内容表示出来,以及说话的真假表示为1和0的数字形式。

continue语句

continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行循环条件的判断,以决定是否继续循环,对于for语句,在进行循环条件的判断前,还要先执行迭代语句,它有以下两种形式:

  • continue:不带标号,终止当前一轮的循环,继续下一轮循环。

  • continue标号名:带标号,跳转到标号指明的外层循环中,继续其下一轮循环。

[例3-10]:输出10~20之间不能被3或5整除的数。

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Ex3_10{
public static void mian(String args[]){
int j = 9;
do {
j++;
if (j % 3 == 0 || j % 5 == 0)
continue;
System.out.println(j + "");
} while ((j < 20));
}
}

11 13 14 16 17 19

说明:当变量j的值能被3或5整除时,执行continue语句,跳过本轮循环的剩余部分,直接执行下一轮循环。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!