04 循环

lix_uan
• 阅读 1142

break与continue

break

  • 终止switch或者当前循环

continue

  • 结束本次循环,继续下一次循环

案例1:求1-100之间偶数和

public class ForTest03 {
    public static void main(String[] args) {
        //定义求和变量,初始化值是0
        int sum = 0;

        //获取1-100之间的数据,用for循环实现
        for(int x=1; x<=100; x++) {
            //把获取到的数据进行判断,看是否是偶数
            if(x % 2 == 0) {
                sum += x;
            }
        }

        //输出求和结果
        System.out.println("sum:"+sum);
    }
}

案例2:趣味折纸

/*     
 *    题目:
 *        世界最高山峰是珠穆朗玛峰,它的高度是8844.43米,假如我有一张足够大的纸,它的厚度是0.1毫米。
 *        请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
 */
public class WhileTest01 {
    public static void main(String[] args) {
        //定义一个计数器,初始值为0
        int count = 0;

        //定义纸张厚度
        double paper = 0.1;

        //定义珠穆朗玛峰的高度
        int zf = 8844430;

        while(paper <= zf) {
            paper *= 2;
            count++;
        }

        System.out.println("需要折叠:" + count + "次");
    }
}

案例3:猜数

    public static void main(String[] args){
        int num = (int)(Math.random()* 100);
        //System.out.println(num);

        //声明一个变量,用来存储猜的次数
        int count = 0;

        java.util.Scanner input = new java.util.Scanner(System.in);
        int guess;//提升作用域
        do{
            System.out.print("请输入100以内的整数:");
            guess = input.nextInt();

            //输入一次,就表示猜了一次
            count++;

            if(guess > num){
                System.out.println("大了");
            }else if(guess < num){
                System.out.println("小了");
            }
        }while(num != guess);

        System.out.println("一共猜了:" + count+"次");

    }

案例4:判断某个数是否是素数

    public static void main(String[] args){
        java.util.Scanner input = new java.util.Scanner(System.in);
        System.out.print("请输入一个正整数:");
        int num = input.nextInt();

        boolean flag = true;
        for (int i = 2; i <= Math.sqrt(num) ; i++) {
            if(num%i==0){
                flag = false;
                break;
            }
        }
        System.out.println(num + (flag?"是":"不是") + "素数");
    }

案例5:水仙花数

public class ForTest04 {
    public static void main(String[] args) {
        //通过循环获取到每一个三位数
        for(int x=100; x<1000; x++) {
            //获取个位,十位,百位
            int ge = x%10;
            int shi = x/10%10;
            int bai = x/10/10%10;
            if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
                System.out.println(x); 
            }
        }
    }
}

案例6:最大公约数和最小公倍数

    public static void main(String[] args){
        //输入两个正整数m和n
        java.util.Scanner input = new java.util.Scanner(System.in);

        int m;
        while(true){
            System.out.print("请输入第一个正整数m的值:");
            m = input.nextInt();
            if(m<=0){
                System.out.println(m + "不是正整数,请重写输入!");
            }else{
                break;
            }
        }
        int n;
        while(true){
            System.out.print("请输入第一个正整数n的值:");
            n = input.nextInt();
            if(n<=0){
                System.out.println(n + "不是正整数,请重写输入!");
            }else{
                break;
            }
        }

        System.out.println("两个正整数:" + m + "," + n);


        //第一步:找出m和n中最大值和最小值
        int max = m>=n ? m : n;
        int min = m<n ? m : n;

        //第二步:从小的开始查找
        //这里的1也可以修改为min的平方根
        int maxYue = 1;
        for(int i=min; i>=1; i--){
            //看i是否能够同时把m和n都整除
            if(m%i==0 && n%i==0){
                maxYue = i;
                break;
            }
        }
        System.out.println(maxYue +"是" + m + "和" + n + "的最大公约数");

        //最小公倍数 = m*n / 最大公约数
        //System.out.println(m*n/maxYue +"是" + m + "和" + n + "的最小公倍数"); 

        //如果不知道这个公式
        //从max开始找,一直找到m*n
        for(int i=max; i<=m*n; i++){
            if(i%m==0 && i%n==0){
                System.out.println(i +"是" + m + "和" + n + "的最小公倍数"); 
                break;
            }
        }
    }

案例7:九九乘法表

    public static void main(String[] args) {
        for(int i =1;i<=9;i++){
            for(int j=1;j<=i;j++){
                System.out.print(j+"*"+i+"="+(i*j) + "\t");
            }
            System.out.println();
        }
    }

案例8:打印菱形

    public static void main(String[] args){
        //上半部分:正的等腰三角形
        //5行
        for(int i=1; i<=5; i++){
            for(int j=4; j>=i; j--){
                System.out.print("  ");
            }

            for(int j=1; j<=2*i-1; j++){
                System.out.print("* ");
            }
            System.out.println();
        }


        //下半部分:倒立的等腰三角形
        //4行
        for(int i=1; i<=4; i++){
            for(int j=1; j<=i; j++){
                System.out.print("  ");
            }

            for(int j=1; j<=9-2*i; j++){
                System.out.print("* ");
            }        
            System.out.println();
        }
    }
点赞
收藏
评论区
推荐文章

暂无数据

lix_uan
lix_uan
Lv1
学无止境,即刻前行
文章
7
粉丝
7
获赞
0