JAVA黑马程序员day3(循环判断综合练习)

练习1:逢7过

在这里插入图片描述

//包含7,指的是数字中有7
public class test {
    public static void main(String[] args) {
        int temp=0;
        int temp2=0;
        for (int i = 1; i <= 100; i++) {//得到1~100之间的每一个数字
            if (i % 7 == 0) {//7的倍数
                System.out.println(i + "过");
            } else {//判断数字中是否包含7
                temp = i;
                while (temp != 0) {
                    temp2 = temp % 10;//取数字
                    if (temp2 == 7) {
                        System.out.println(i + "过");
                        break;
                    }
                    temp = temp / 10;
                }
            }
        }
    }
}

练习2:求平方根

在这里插入图片描述

import java.util.Scanner;
public class test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int num=sc.nextInt();
        int result=0;
        for(int i=0;i<num;i++ ){//平方根的粗略范围是0~num
            if(num==i*i){//相等,那么当前数i就是平方根
                System.out.println(i);
                break;//一旦找到了,循环就可以停止了,后面的数字不需要再找了,提高代码的运行效率
            }
            else if((i*i)>num){//如果大于,那么前一个数字就是平方根的整数部分
                System.out.println(i-1);
                break;
            }
        }
    }
}

练习3:求质数

在这里插入图片描述

最初写的

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int x=sc.nextInt();
        int num=0;
        if(x==1){
            System.out.println("不是质数");
        }
        for(int i=2;i<x;i++){
            if(x%i==0){
                System.out.println("不是质数");
                break;
            }
            else if(i==x-1){
                System.out.println("是质数");
            }
        }
    }
}

优化后的

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int x=sc.nextInt();
        boolean flag=true;
        if(x==1){
            System.out.println("1既不是质数也不是合数");
        }
        /*简化思路:
        * 81
        * 以81的平方根9,为中心,假设a*b=81
        * 那么a和b中,其中有一个必定小于等于9的,另一个是大于等于9的
        * 所以判断质数时,循环次数最少为x的平方根*/
        for(int i=2;i<=Math.sqrt(x);i++){
            if(x%i==0){
                flag=false;
                break;
            }
        }
        if(flag==false){
            System.out.println("不是质数");
        }
        else{
            System.out.println("是质数");
        }
    }
}

在这里插入图片描述

在这里插入图片描述

练习4:猜数字小游戏

在这里插入图片描述
在这里插入图片描述

import java.util.Random;//1、导包
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        //2、创建对象
        Random rd=new Random();//随机数包类似于scanner

        //3、生成随机数
        //判断技巧:在小括号中,书写的是生成随机数的范围,这个范围一定是从0开始的,到这个数-1结束
        //口诀:包头不包尾,包左不包右
        //int num=rd.nextInt(100);//限制范围是0~99
        int num=rd.nextInt(100)+1;//在末尾+1可以实现范围1-100;
        while(true) {
            System.out.println("请输入你要猜的数字");
            Scanner sc =new Scanner(System.in);
            int x=sc.nextInt();
            if (x < num) {
                System.out.println("猜小了");
            } else if (x > num) {
                System.out.println("猜大了");
            } else {
                System.out.println("猜对了");
                break;
            }
        }
    }
}


在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值