流程控制语句

本文介绍了Java中的for和while循环的区别,如何使用Random类生成随机数,以及一系列编程练习题,包括计算折纸次数、判断回文数、求商余数、逢7过游戏和求平方根,以及质数判断和猜数字游戏。
摘要由CSDN通过智能技术生成

1:流程控制语句总结框架

2.for和while区别:

  • for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到;

  • for循环使用:知道循环次数或者循环范围

  • while循环中,控制循环变量,对于while循环来说不归属于其语法结构,在while循环结束后,该变量还可以使用;

  • while循环使用:不知道循环次数和范围,只知道循环结束的条件

3.随机数Random:

(1)导包:import java.util.Random;

(2)创建对象:Random random = new Random();

(3)接收对象:int x=random.nextInt(随机数范围);

import java.util.Random;
public class HelloWorld {
    public static void main(String[] args) {
        Random random = new Random();
//        小括号中书写生成随机数的范围,这个范围从0开始,到这个数-1结束
//        包头不包尾,包左不包右
        int x=random.nextInt(10);
        System.out.println(x);
    }
}
(4)任意到任意的随机数:
import java.util.Random;
public class HelloWorld {
    public static void main(String[] args) {
        Random random = new Random();
//        需求:生成1~100随机数
        /*用来生成任意数到任意数的随机数 7~15
        让这个范围头尾都减去一个值,让这个范围从0开始 -7 0~8
        尾巴+1 8+1=9
        最终结果,再加上第一步减去的值
        */
        int x=random.nextInt(9)+7;
        System.out.println(x);
    }
}

4.练习题:

(1)打印折纸次数:
public class HelloWorld {
    public static void main(String[] args) {
        /*需求:世界上最高峰珠穆朗玛峰(8844.43米=8844430毫米)
        假如我有一张足够的大的纸,它的厚度是0.1毫米。请问:我折叠多少次,可以折成珠穆朗玛峰的高度?
        */
        //分析:折叠每一次纸张厚度是原先的两倍
        double height=8844430;
        double paper=0.1;
        int count=0;
        while (paper<height){
            paper=paper*2;
            count++;
        }
        System.out.println(count);
    }
}
(2)两道力扣算法题:
  • 回文数:

需求:给你一个整数x,若x是一个回文数,打印true;反之,返回false;

回文数例:12321;343

import java.util.Scanner;
​
public class HelloWorld {
    public static void main(String[] args) {
        /*需求:给你一个整数x,若x是一个回文数,打印true;反之,返回false; */
        //核心思路:把数字倒过来跟原来的数字进行比较
        int x=1232;
//        定义一个临时变量用于记录x原来的值,用于最后进行比较
        int temp=x;
//        记录倒过来之后的结果
        int num=0;
        while (x!=0){
            int g=x%10;
//            修改一下x记录的值
            x=x/10;
//            把当前获取到的数据拼接到最右边
            num=num*10+g;
        }
        System.out.println(num);
        System.out.println(x);
        System.out.println(num==temp);
    }
}
​
  • 求商和余数:

需求:给定两个整数,被除数和除数(都是正数,且不超过int范围)。

将两数相除,要求不使用乘法、除法和%运算符。

得到商和余数。

public static void main(String[] args) {
        /*需求:给定两个整数,被除数和除数(都是正数,且不超过int范围)。将两数相除,要求不使用乘法、除法和%运算符。得到商和余数 */
//        分析:被除数/除数=商……余数
        int a=94;
        int b=10;
        int num=0;
        while (a>b){
           a=a-b;
           num++;
        }
        System.out.println(num);
        System.out.println(a);
    }
  • 逢7过:

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

需求:使用程序在控制台答应出1——100之间满足逢7过的规则。

 public static void main(String[] args) {
        /*游戏规则:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数说:过
           需求:使用程序在控制台答应出1——100之间满足逢7过的规则。 */
//        分析:i%7==0||i%10==7 过
        for (int i = 1; i <= 100; i++) {
            if(i%7==0||i%10==7||i/10%10==7){
                System.out.println("过");
                continue;
            }
            System.out.println(i);
        }
    }
  • 求平方根

需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根。

结果只保留整数部分,小数部分将被舍去。

public static void main(String[] args) {
        /*需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根。结果只保留整数部分,小数部分将被舍去。 */
//        分析:16平方根4
//        10:1*1=1<10;2*2<10;3*3=9<10;4*4-16<10
//        10的平方根在3~4之间
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个大于等于2的整数:");
        int x=sc.nextInt();
        for (int i = 1; i <=x; i++) {
            if(i*i==x){
                System.out.println(i+"就是"+x+"的平方根");
                break;
            }else if (i*i>x){
                System.out.println((i-1)+"就是"+x+"的平方根");
                break;
            }
        }
    }
  • 求质数:

需求:键盘录入一个正整数x,判断该整数是否是一个质数;

 public static void main(String[] args) {
        /*需求:需求:键盘录入一个正整数x,判断该整数是否是一个质数; */
//        质数:如果一个整数只能被1和本身整除,那么这个数就是质数;否则是合数
//        7=1*7
//        8=1*8; 8=2*4
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int x=sc.nextInt();
//        最初就假定x是质数
        boolean flag=true;
//从2开始判断,一直判断到x-1为止,看这个范围内是否有数字可以被i整除
        for (int i = 2; i <x; i++) {
            if(x%i==0){
                flag=false;
                break;
            }
        }
        if(flag){
            System.out.println(x+"是质数");
        }else {
            System.out.println(x+"不是质数");
        }
    }
  • 猜数字小游戏:

import java.util.Random;
import java.util.Scanner;
​
public class HelloWorld {
    public static void main(String[] args) {
//        猜1~100的数字
        Random random = new Random();
        int x=random.nextInt(100)+1;
        while (true) {
            //        猜数字:
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您猜的数字:");
            int i=sc.nextInt();
            if (i > x) {
                System.out.println("您猜的数大了!");
            } else if (i < x) {
                System.out.println("您猜的数小了!");
            } else {
                System.out.println("恭喜您猜对了!");
                break;
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值