栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java日常练习(基础版)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java日常练习(基础版)

目录

一 变量与运算符练习

二 流程控制练习


一 变量与运算符练习

1 战士连续作战89小时,编程计算共多少天零多少小时?

        int t = 89;
        int day = t / 24;
        int hour = t % 24;
        System.out.println("为抵抗洪水,战士连续作战" + day + "天" + hour + "小时");

2 今天是周二 100天以后是周几

       int week = 2;
       week += 100;
       week = week % 7;
       System.out.println("100天后是周"+week);

3 实现两个变量交换

        int m = 10,n=5;
        int temp;
        temp = m ;
        m = n ;
        n = temp;
        System.out.println(m);

4

        char c = 1 +'A';
        System.out.println(c);//B
        System.out.println(1+'A');//66

二 流程控制练习

1从键盘输入狗狗的年龄 获取对应的人的年龄

        Scanner scanner = new Scanner(System.in);
        System.out.println("输入狗狗的年龄");
        double age = 0;
        int dogAge = scanner.nextInt();
        if (dogAge < 0 ){
            System.out.println("请输入正确的年龄");
        }
        else{
            if (dogAge <= 2){
                age = dogAge * 10.5;
            }
            else {
                age = 2 * 10.5 + 4 * (dogAge - 2);
            }
            System.out.println("对应的人的年龄为"+age);
        }

 2实现对三个整数进行排序,输出时按照从小到大的顺序输出。

//可以采取if-else嵌套的依次排序法等 这里采取的是交换法
        int a = 10, b = 5, c = 1;
        if (a > b) {int temp = a;a =b;b = temp;}
        if (b > c){int temp = b;b =c;c = temp;}
        if (a > b) {int temp = a;a =b;b = temp;}
        System.out.println("从大到小顺序为"+a+" "+b+" "+c);

3 从键盘分别输入年、月、日,判断这一天是当年的第几天

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年");
        int year = scanner.nextInt();
        System.out.println("请输入月");
        int month = scanner.nextInt();
        System.out.println("请输入日");
        int day = scanner.nextInt();
        int sum = 0;
        switch (month -1){
            case 11:
                sum += 30;
            case 10:
                sum += 31;
            case 9:
                sum += 30;
            case 8:
                sum += 31;
            case 7:
                sum += 31;
            case 6:
                sum += 30;
            case 5:
                sum += 31;
            case 4:
                sum += 30;
            case 3:
                sum += 31;
            case 2:
                if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ){
                    sum += 29;
                }
                else {
                    sum += 28;
                }
            case 1:
                sum += 31;
        }
        sum += day;
        System.out.println("这是当年的第"+sum+"天");

4随机输出一个两位数

        int value = (int)(Math.random() * 90 + 10);
        System.out.println(value);

5 使用条件结构实现,如果用户名等于字符‘青’,密码等于数字‘123’,就输出“欢迎你,青”,否则就输出“对不起,你不是青”。

        char name = '青';
        int password = 111;
        if (name == '青' && password == 123){
            System.out.println("欢迎你,青");
        }
        System.out.println("对不起你不是青");

6 使用双重循环打印20 * 8的矩形,使用for循环实现

        for (int i = 0 ;i < 8;i++){
            for (int j = 0 ;j < 20;j++){
                System.out.print("*");
            }
            System.out.println();
        }


7 输入高度,输出倒直角三角形

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入高");
        int h = scanner.nextInt();
        for (int i = 0;i < h;i++){
            for (int j = 0;j < h -i;j++){
                System.out.print("*");
            }
            System.out.println();
        }

8从1循环到150,一行一值,3倍数打印foo,5倍数打印biz,7倍数打印baz

        for (int i = 1;i <= 150 ;i++){
            System.out.print(i);
            if ( i % 3 == 0){
                System.out.print(" foo ");
            }
            if (i % 5 == 0){
                System.out.print(" biz ");
            }
            if ( i % 7 == 0){
                System.out.print(" baz ");
            }
            System.out.println();
        }

9 输入两个正整数m和n求其最大公约数和最小公倍数

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入正整数m");
        int m = scanner.nextInt();
        System.out.println("请输入正整数n");
        int n = scanner.nextInt();
        //求最大公约数
        for (int i = m;i >0;i--){
            if (m % i == 0 && n % i ==0 ){
                System.out.println("最大公约数为"+i);
                break;
            }
        }
        for (int j = 1;j <= m ;j++){
            //求最大公倍数
            if (j * m % n == 0){
                System.out.println("最小公倍数为"+j*m);
                break;
            }
        }

10 输出所有的水仙花数(三位数 各个位上数字立方和等于其本身)

for (int a = 1;a <10 ;a++){
            for (int b = 0 ;b <10 ;b++){
                for (int c = 0;c < 10;c++){
                    if (a*a*a + b*b*b +c*c*c == 100*a +10 * b +c){
                        System.out.println(a+""+b+""+c+"");
                    }
                }
            }
        }

11 输出九九乘法表

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

12 输出100以内的质数

方法①

        for (int i = 2; i<=100 ;i++){
            boolean isFlag = true;
            for (int j = 2; j < i ;j++){
                    if (i % j == 0){
                        isFlag = false;
                        break;
                    }
            }
            if (isFlag){
                System.out.println(i);
            }
        }

这里可以利用二分法查找优化一下

        for (int i = 2; i<=100 ;i++){
            boolean isFlag = true;
            for (int j = 2; j < Math.sqrt(i) ;j++){
                if (i % j == 0){
                    isFlag = false;
                    break;
                }
            }
            if (isFlag){
                System.out.println(i);
            }
        }

方法②

 label: for (int i = 2; i<=100 ;i++){
            for (int j = 2; j < Math.sqrt(i) ;j++){
                if (i % j == 0){
                    continue label;
                }
            }
           System.out.println(i);

        }

13 从键盘读入个数不确定的整数 并判断读入的正数和负数的个数 输入为0时程序结束

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入任意个整数");
        boolean isFlag = true;
        int z = 0;
        int f = 0;
        while (isFlag){
           int a = scanner.nextInt();
           if (a > 0 ){
               z++;
           }
           else if (a < 0){
               f++;
           }
           else {
               isFlag = false;
           }
        }
        System.out.println("正整数的个数为"+z);
        System.out.println("负整数的个数为"+f);

14 找出1000以内的所有完数(一个数如果恰好等于它的因子之和,这个数就称为完数,因子是除去这个数本身的其他约数)

        for (int i = 1; i <= 1000 ;i++){
            int sum = 0;
            for (int j = 1; j < i;j++){
                if (i % j == 0){
                    sum += j;
                }
            }
            if (sum == i){
                System.out.println(i);
            }
        }

15 随机生成一个100以内的数,猜数字游戏:

      从键盘输入数,如果大了提示,大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次

        Scanner scanner = new Scanner(System.in);
        int a =(int)(Math.random() * 90 +10);
        int sum = 0;
        for (;;){
            System.out.println("请猜猜");
            int b = scanner.nextInt();
            if (b > a){
                System.out.println("太大了");
                sum ++;
            }
            else if (b < a){
                System.out.println("太小了");
                sum ++;
            }
            else {
                System.out.println("猜对了!!");
                sum ++;
                break;
            }
        }
        System.out.println("一共猜了"+sum+"次");

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/967267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号