您的位置:首页 > 编程语言 > Java开发

Java 提高(1)----- java中的goto语句

2017-08-28 23:07 211 查看

java中的goto语句

Java中的goto语句

在java中可以使用标签和continue,break组合形成goto的效果

public class LabelDemo {
public static void main(String[] args) throws InterruptedException {
//标签
exit:
while (true){
for(int i= 0 ; i < 10 ; i++){
if(i == 5)
//                    break ;   //直接退出内层for循环继续下一次for循环
//                    continue ; //开始内层for循环的下一次
//                    break exit; //直接退出exit标签所执行标签的循环
//                    continue exit; //调到exit,从新执行while
System.out.print(i+" ");
Thread.sleep(10);
}
System.out.println();
}
}
}

#使用break的结果
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
...  //代表死循环打印

#使用continue的结果
0 1 2 3 4 6 7 8 9
0 1 2 3 4 6 7 8 9
0 1 2 3 4 6 7 8 9
0 1 2 3 4 6 7 8 9
0 1 2 3 4 6 7 8 9
0 1 2 3 4 6 7 8 9
... //代表死循环打印

#使用break exit结果
0 1 2 3 4 //程序执行完毕,退出了2个循环

#使用continue exit结果
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 ......  //代表死循环打印


总结

一般的continue会退回到内存循环的开头,并继续执行

一般的break会中断并跳出当前循环

代标签的continue会到达标签的位置,从新开始

带标签的break会中断并跳出当前标签所指的循环

程序联系

打印出4位数字的吸血鬼数字

public class VampireNumber {
public static void main(String[] args) {
printVampireNumber(4);
}

private static void printVampireNumber(int digit) {
int from = 1;
for(int i = 1 ; i < digit ;i++){
from *= 10;
}
int to = from*10 -1;

for(int i = from ; i<= to ;i++){
//排除后两位是两个0的情况,比如1000,1100,1200,1300...
if( i % 100 == 0 ){
continue;
}
isVampireNumber(i);
}
}

private static void isVampireNumber(int num) {

4000
char[] arr = String.valueOf(num).toCharArray();
deal(arr[0]-'0',arr[1]-'0',arr[2]-'0',arr[3]-'0', num);
deal(arr[0]-'0',arr[2]-'0',arr[1]-'0',arr[3]-'0' ,num);
deal(arr[0]-'0',arr[3]-'0',arr[1]-'0',arr[2]-'0' ,num);
}

private static void deal(int a1, int a2, int b1, int b2 ,int num) {
if( ((a1*10+a2) *(b1*10+b2)) == num){
print(num ,a1*10+a2, b1*10+b2);
}
if( ((a1+a2*10) *(b1*10+b2)) == num){
print(num ,a1+a2*10, b1*10+b2);
}
if( ((a1*10+a2) *(b1+b2*10)) == num){
print(num ,a1*10+a2, b1+b2*10);
}
if( ((a1+a2*10) *(b1+b2*10)) == num){
print(num ,a1+a2*10, b1+b2*10);
}
}

private static void print(int num , int a,int b){
System.out.println( " "+ num+" ="+a+" * "+b);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息