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

来源:互联网 发布:淘宝汽车用品店铺 编辑:程序博客网 时间:2024/06/08 03:04

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) {        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);    }}

原创粉丝点击