05-java基础——循环习题

循环的选择:知道循环的次数或者知道循环的范围就使用for循环,其次再使用while循环

猜数字

  • 程序自动生成一个1-100之间的随机数,在代码中使用键盘录入去猜出这个数字是多少?
    • 要求:使用循环猜,一直猜中为止。
  • 思路分析:
    • 1-100之间的随机数(random函数)
    • 一直猜中为止:不知道猜测多少次才中(循环的次数不确定)
public class guess {
    public static void main(String[] args) {
//        程序自动生成一个1-100之间的随机数,在代码中使用键盘录入去猜出这个数字是多少?
            //要求:使用循环猜,一直猜中为止。

        Random random = new Random();
//        int number = random.nextInt(100);
//       表示随机生成一个0-99的数

//        随机生成一个1-100的数
        int number = random.nextInt(100)+1;
        Scanner scanner = new Scanner(System.in);
//        不知道循环的次数或者不知道循环的范围,可以使用while循环
        while (true){
            System.out.println("输入猜测的数字:");
            int i = scanner.nextInt();
//            猜对了就跳出循环,猜不对继续猜
            if (i > number){
                System.out.println("你猜的数字大了");
            }else if (i < number){
                System.out.println("你猜的数字小了");
            }else {
                System.out.println("你猜对了");
                break;
            }
        }
    }
}

逢7过

  • 游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过

    • 需求:使用程序在控制台打印出1-100之间的满足逢七必过规则的数据
  • 分析:

    • 1-100之间的数字:知道了循环的范围——使用for循环
    • 数字满足包含7或者是7的倍数就输出过(写出这个条件的判断语句即可)
public class fengqiguo {
    public static void main(String[] args) {
       /*
       逢7过:
        游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过
        需求:使用程序在控制台打印出1-100之间的满足逢七必过规则的数据
        */
        for(int i = 1; i<= 100 ; i++){
//           排除7的倍数:i%7 ==0;
//           排除十位上的数是7的:i /10%10 == 7;(i/10可以得出十位上的数,再%10就是判断是否符合规则)
//            排除个位上是7的:i%10 == 7;
            if (i % 7 == 0 || i /10%10 == 7 || i % 10 == 7 )
            {
//                包含7或者是7的倍数时就输出过,并跳出循环
                System.out.println("过");
                continue; // 跳过当前循环
            }
//            不包含7或者是7的倍数时就正常输出数字
            System.out.println(i);
        }
    }
}

回文数的判断

在这里插入图片描述

  • 思路分析:
    • 算出倒序的数,然后与原来的数比较
public class huiwenshu {
    public static void main(String[] args) {
        int x=12291;
        int temp = x;
        int num = 0;
        while(x != 0){
//            拿到最左边的数字
            int a = x%10;
//            把原来的数去掉最左边一位
            x = x/10;
//         计算倒序的数
            num = num * 10 + a;
        }
//        比较判断
        if (num == temp){
            System.out.println("是回文数");
        }else {
            System.out.println("不是回文数");
        }
    }
}

计算一个数的平方根

  • 需求:键盘录入一个大于等于2的整数 x ,计算并返回 x 的 平方根 。结果只保留整数部分 ,小数部分将被舍去 。
  • 利用循环实现
    • 思路:利用列举法找出规律:
      • 1的平方=1
      • 2的平方=4
      • 3的平方=9
      • 4的平方=16
import java.util.Scanner;

public class pingfanggen {
    public static void main(String[] args) {
//        	键盘录入一个大于等于2的整数 x ,计算并返回 x 的 平方根 。
//        	结果只保留整数部分 ,小数部分将被舍去 。

        Scanner scanner = new Scanner(System.in);
        System.out.print("录入的数字:");
        int number = scanner.nextInt();
        for (int i = 1;i <= number-1 ;i++){
            //从1开始循环,拿着数字的平方跟原来的数字进行比较
            //如果小于number,那么继续往后判断
            if (i * i == number){
                //如果相等,那么当前数字就是平方根
                System.out.println("number 的平方根是" + i);
                break;
            }else if (i * i > number){
                //如果大于的,那么前一个数字就是平方跟的整数部分
                System.out.println("number 的平方根的整数部分是" + (i-1));
                break;
            }
        }

    }
}

  • 使用java的工具类实现
    • 在Java中,你可以使用Scanner类来从键盘获取输入,然后使用Math.sqrt()函数来计算平方根
    • 由于Math.sqrt()返回的是一个double类型的值,你可以使用类型转换或者Math.floor()、(int)来舍去小数部分,只保留整数部分。
import java.util.Scanner;  
  
public class SquareRootExample {  
    public static void main(String[] args) {  
        Scanner scanner = new Scanner(System.in);  
  
        // 提示用户输入一个大于等于2的整数  
        System.out.print("请输入一个大于等于2的整数: ");  
        int x = scanner.nextInt();  
  
        // 检查输入是否大于等于2  
        while (x < 2) {  
            System.out.println("输入的数字小于2,请重新输入: ");  
            x = scanner.nextInt();  
        }  
  
        // 计算平方根并只保留整数部分  
        double sqrt = Math.sqrt(x);  
        int result = (int) sqrt; // 或者使用 Math.floor(sqrt) 但在这里结果是一样的,因为sqrt是正的  
  
        // 输出结果  
        System.out.println("整数部分的平方根是: " + result);  
  
        // 关闭Scanner  
        scanner.close();  
    }  
}

判断一个数是否为质数

  • 需求: 键盘录入一个正整数 x ,判断该整数是否为一个质数。
    • 思路:理解什么是质数,然后根据质数的特征进行代码的编写
import java.util.Scanner;

public class zishu {
    public static void main(String[] args) {
//        键盘录入一个正整数 x ,判断该整数是否为一个质数。

//质数:质数(也称为素数)是大于1的自然数,并且除了1和它本身以外不再有其他因数的数。换句话说,质数只有两个正因数:1和它本身。
//如果一个整数只能被1和本身整除,那么这个数就是质数。否则这个数叫做合数

//7 = 1 * 7 质数,13也是质数
//8 = 1 * 8  2 * 4 合数
        Scanner scanner = new Scanner(System.in);
        System.out.print("录入数字:");
        int number = scanner.nextInt();

    //定义一个变量,表示标记
    //标记着number是否为一个质数
    //true: 是一个质数
    //false : 不是一个质数
    //表示最初就认为number是一个质数
        boolean flag = true;

//        2是最小的质数
//        注意:当number=2的时候,是不符合i< number的条件的,所以没有进入循环语句
        for (int i=2 ; i<number;i++){
            if (number % i == 0){
                flag = false;
                break;
            }
        }
        if (!flag){
            System.out.println("这个数不是质数");
        }else {
            System.out.println("这个数是质数");
        }

    }
}

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一些关于Java do-while循环的练习题: 1. 编写一个程序,使用do-while循环,从1数到10,将每个数字输出到屏幕上。 2. 编写一个程序,使用do-while循环,从10数到1,将每个数字输出到屏幕上。 3. 编写一个程序,使用do-while循环,求1到10的和,并将结果输出到屏幕上。 4. 编写一个程序,使用do-while循环,输入一个正整数n,然后求1到n的和,并将结果输出到屏幕上。 5. 编写一个程序,使用do-while循环,输入一组数字,直到输入0为止,然后将输入的数字求和并输出结果到屏幕上。 希望这些练习题能够帮助您巩固和提高对Java do-while循环的理解和应用能力。 ### 回答2: Java中的do-while循环是一种循环语句,与while循环类似,但是它会先执行循环体中的代码,然后根据循环条件来判断是否继续循环。 下面是几个do-while循环的练习题: 1.请编写一个程序,使用do-while循环计算并输出10以内的所有整数的和。 2.请编写一个程序,使用do-while循环输出一个整数的所有因子。 例如,如果输入的数字是10,则应该输出1、2、5、10。 3.请编写一个程序,使用do-while循环从键盘读取输入,直到用户输入的数为5。 程序应该在每次循环中输出“请输入一个数字:”,并等待用户输入。 4.请编写一个程序,使用do-while循环从键盘读取输入,直到用户输入的值为-1。 程序应该在每次循环中输出“请输入一个数字:”,并等待用户输入。 然后,程序应该计算所有输入数字的和,并输出结果。如果用户一开始就输入-1,则输出0作为结果。 5.请编写一个程序,使用do-while循环来实现斐波那契数列的生成。 斐波那契数列是这样一组数列:1、1、2、3、5、8、13、21、34、……, 其中每个数都是前两个数的和。程序应该在每次循环中输出当前斐波那契数列的值,并等待一段时间后继续循环。 这些练习题可以帮助我们加深对于do-while循环的理解和掌握,在实践中掌握Java编程的基本技能,为我们以后的开发工作打下坚实的基础。 ### 回答3: Java的do-while循环是一种比较常用的循环方式,它对于需要先执行一次循环体的场景非常有用。本文将介绍一些do-while循环的练习题,协助读者更好的理解和掌握这种循环方式。 1、用do-while循环语句计算1到100的整数和。 首先,要计算1到100之间的所有整数和,需要定义一个整型变量sum,初始值为0。接着,使用do-while循环从1开始加,每次循环都将变量i加1,并将此时的i值加到sum中。执行完100次循环后,输出sum的值即为1到100的整数和。 代码示例: ``` int sum = 0; int i = 1; do { sum += i; i++; } while (i <= 100); System.out.println("1到100之间的整数和为:" + sum); ``` 2、利用do-while循环语句计算输入的数的阶乘。 阶乘是指从1到该数之间所有整数的乘积,如5的阶乘为5×4×3×2×1=120。为了计算n的阶乘,需要使用do-while循环从1开始乘,每次循环都将乘积结果乘以i,直到i等于n为止。执行完循环后,输出最终结果即为n的阶乘。 代码示例: ``` Scanner scanner = new Scanner(System.in); System.out.print("请输入一个整数n:"); int n = scanner.nextInt(); int i = 1; int fact = 1; do { fact *= i; i++; } while (i <= n); System.out.println(n + "的阶乘为:" + fact); ``` 3、通过do-while循环语句输出9×9乘法表。 乘法表是一个比较常见的练习题,它可以检验循环嵌套和循环控制语句的熟练程度。利用do-while循环输出9×9乘法表,首先需要定义两个循环变量i和j,i表示被乘数,j表示乘数。每一行输出从1到9的乘积,直到i等于9为止,循环结束。 代码示例: ``` int i = 1; do { int j = 1; do { System.out.print(j + "×" + i + "=" + i*j + " "); j++; } while (j <= i); System.out.println(); i++; } while (i <= 9); ``` 以上就是几个利用do-while循环解决的Java编程练习题,希望对读者有所帮助。在实际编程中,需要根据不同的场景灵活运用循环语句,以提高编程效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值