Java教程

Java日常练习题

本文主要是介绍Java日常练习题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java日常练习题

这是我在课余时间手敲的一些练习题

做以记录,希望我自己可以坚持下去,代码很粗糙,如有不足的地方还请各位大佬给予更好的方法

练习一:

package week1;

public class Demo1 {
    /*接受用户传入的三个整数,并将它们的最大值作为结果输出*/
    private void GetMaxNumber(int a, int b, int c) {
        int max = (a > b) ? a : b;
        System.out.println(a + "\t" + b + "\t" + c + "的最大值是" + ((max > c) ? max : c));
    }

    public static void main(String[] args) {
        Demo1 dy = new Demo1();
        dy.GetMaxNumber(3, 4, 5);
    }
}

练习二:

package week1;

public class Demo2 {
    private void GetBmi(double height,double weight){
        double bmi=weight/(height*height);
        if(bmi<18.5)
            System.out.println("过轻");
        else if(bmi<22.9)
            System.out.println("正常");
        else if(bmi<24.9)
            System.out.println("偏胖");
        else if(bmi<29.9)
            System.out.println("肥胖");
        else if(bmi<40)
            System.out.println("重度肥胖");
        else
            System.out.println("极度肥胖");

    }

    public static void main(String[] args) {
        Demo2 dy1 = new Demo2();
        dy1.GetBmi(1.8,67.5);
    }
}

练习三:

package week1;

import java.util.Scanner;

public class Demo3 {

    /*手机选号,根据用户输入的手机号来确认用户实际支付的价格
    *如果尾数为8,需支付办卡费50元
    * 如果尾数为4,需支付办卡费0元
    * 如果是其他尾号,需支付办卡费用20元
    *
    */
    public static void main(String[] args) {
        //提示并接收用户输入的手机号

            System.out.println("请输入您要预选的手机号:");
            String tel = new Scanner(System.in).nextLine();//String类型数据一般用nextline()
            getPrice(tel);

    }
        //创建getprice方法
        //被static修饰的方法在类加载的时候执行

        public static void getPrice(String tel){
        //手机号tel的长度,必须是11位的正确手机号--提前校验,提高程序健壮性
            if(tel.length()!=11){
                System.out.println("号码格式错误!!");
            }
            //获取手机号的尾数
            char ws = tel.charAt(10);//位数是11,范围是0到length-1,charAt()方法是获取指定位数上的值
            //定义用来保存最终结果的变量price,初始化为零
            int price = 0;
            //根据ws字符的值,来为price重新赋值
            switch (ws){
                case '8':price=50;break;//若尾数为八,则价格为50
                case '4':price=0;break;//若尾数为4,则价格为零
                default:price=20;//其他尾数的价格为20
            }
            System.out.println("您实际应支付的价格为"+price);
        }

    }


练习四:

package week1;

public class Demo4 {
    /*分别通过for循环、while循环、do-while循环写一个死循环*/
    private void Forsx(){
        for(int i=1;i>0;i++){
            System.out.println("ldsb");
        }
    }
    private void Whilesx(){
        while (true){
            System.out.println("zjh是真的帅");
        }
    }
    private void Do_Whilesx(){
        do{
            System.out.println("我心有静");
        }while (true);
    }

    public static void main(String[] args) {
        Demo4 dy = new Demo4();
        //dy.Do_Whilesx();//do-whlie的死循环
        //dy.Forsx();//for循环的死循环
        dy.Whilesx();//whlie的死循环
    }
}

练习五:

package week1;

public class Demo5 {
    /*鸡兔同笼问题
    *已知鸡兔共有35只,共94只脚,那么鸡兔各几只?
    *
    *
    */
    public static void main(String[] args) {
        //循环变量j定义鸡,循环变量t定义兔
        //穷举法;定义鸡从零到35,兔从35到0;
        for (int j = 0,t=35; j <=35&&t>=0; t--,j++) {

                if(2*j+4*t==94){
                    System.out.print("鸡有"+j+"只"+"\n"+"兔有"+t+"只");
                    break;

            }
        }
    }
}

练习六:

package week1;

import java.util.Scanner;

public class Demo6 {
    /*求数字阶乘(for循环版)
     *需求:接收用户输入的数字,计算该数字的阶乘结果
     * 已知:负数不可以有阶乘,0的阶乘是1
     * 5!=5*4*3*2*1
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要计算阶乘的数字:");
        int a = sc.nextInt();//接收用户输入的数字

        if(a<0){//负数不能求阶乘
            System.out.println("负数不能求阶乘");
        }
        else if (a == 0) {//特殊情况,当用户输入的数字为0时,0!=1
            System.out.println("0!=1");

        } else {
            System.out.print(a+"!=");
            for (int i = a - 1; i > 0; i--) {
                a = a * i;

            }

            System.out.println(a);
        }
    }
}

练习七:

package week1;

public class Demo7 {
    /*
    多次生成随机数,并打印第一次出现大于0.999 时的次数与生成的随机数
     */
    public static void main(String[] args) {
        int i = 0;//用i来记录生成的次数
        //循环次数未知的情况下使用while循环
        while (true) {

            double a = Math.random();//在区间[0,1)上随机生成一个数

            if(a>0.999){
                System.out.println("第一次出现大于0.999的随机数是"+a+"生成的次数为"+i);
                break;
            }
            i++;
        }


    }
}

练习八:

package week1;

public class Demo8 {
    /*
    打印100以内除了尾数为3,5,7的所有数
     */
    public static void main(String[] args) {
        System.out.println("100以内除了尾数为3,5,7的所有数为:");
        for (int i=1;i<100;i++){
            int a = i%10;//100以内的数通过除10取余得出尾数,将尾数赋给变量a
            if(a==3||a==5||a==7){
                continue;//跳过本次循环执行下一条语句
            }

            System.out.print(i+"\t");
        }
    }
}

练习九:

package week2;

import java.util.Scanner;

public class Demo9 {
    /*
    求质数:接收用户输入的数字,判断是否为质数
    质数的概念:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,也称为素数
    规定:1既不是质数,也不是合数
     */

    //静态方法判断所输入的数是否为质数
    public static void getPrimenumber(int a){
        if (a < 2) {//这个范围内的数都不是质数
            System.out.println(a+"不是质数");
            return;
        }
        if (a == 2) {
            System.out.println("2是质数");
            return;
        }

        for (int i = 2; i < a; i++) {
            if (a % i == 0) {
                System.out.println(a + "不是质数");
                return;//return结束程序
            }

        }
        System.out.println(a + "是质数");
    }


    public static void main(String[] args) {
        System.out.println("请输入一个自然数:");
        int a = new Scanner(System.in).nextInt();
        getPrimenumber(a);
    }

}

练习十:

package week2;

import java.util.Scanner;

public class Demo10 {
    /*
    接收用户输入的数字,判断在此范围内质数的个数
     */
    public static void main(String[] args) {

        System.out.println("请输入一个自然数:");
        int x = new Scanner(System.in).nextInt();
        if(x<2){
            System.out.println("此范围内没有质数");
            return;
        }
        if(x==2){
            System.out.println("有一个质数");
            return;//结束程序
        }
        int count=1;
        flag:
        for (int i = 3; i < x; i++) {//i从3开始,说明已经将2是质数计入count中,每次拿到一个i与 j到i 的数进行取余操作
            for (int j = 2; j < i; j++) {
                if(i%j==0){
                    //结束本次循环执行下一条语句,这里是跳到标记点flag处
                    continue flag;//当i整除j时,说明i不是质数,continue flag;跳出循环判断下一个i
                }
            }
            //内层循环j结束,i是质数,count+1
            count++;
        }
        System.out.println(count);
    }

}

练习十二:

package week2;

import java.util.Scanner;

public class Demo12 {
    /*
    求数字阶乘(递归解法版)
    需求:接收用户输入的数字,计算该数字的阶乘结果
    已知:负数不可以有阶乘,0的阶乘结果是1,
    5 ! = 5 x 4 x 3 x 2 x 1=120
     */
    /**递归的两要素 1.总结规律 2.最简问题*/
    private static int diGui(int n){

        if(n==1){//最简问题
            return 1;
        }else{//其他情况 n*diGui(n-1)
            //递归:在方法内部自己调用自己
            return n*diGui(n-1);
        }
    }
    public static void main(String[] args) {
        System.out.println("请输入一个大于零的自然数:");
        int n = new Scanner(System.in).nextInt();
        int c=diGui(n);//调用digui(n)来求n的阶乘
        System.out.println("由递归算法求得的"+n+"的阶乘为"+c);
    }
}

练习十三:

package week2;

import java.util.Scanner;

public class Demo13 {
    /*
    打印全三角形
    需求:接收用户输入的行数,打印对应的全三角形
     */
    private static void printQusanjiao(int h){
        /*
        开始打印全三角行
        外层循环决定星星打印的行数
         */
        for (int i = 0; i <= h; i++) {

            //控制每行打印空格的个数
            for (int k = 0; k < h-i; k++) {//加空格
                System.out.print(" ");
            }
            /*
            控制每行打印星星的个数j的范围是0到2*i-1左闭右开
             */
            for (int j = 0; j <2*i-1; j++) {//打印*
                System.out.print("*");
            }
            System.out.println();//每打印一行就进行换行
        }
    }
    public static void main(String[] args) {
        System.out.println("请你输入需要打印的星星行数:");
        int h = new Scanner(System.in).nextInt();
        printQusanjiao(h);
    }
}

持续更新中…

这篇关于Java日常练习题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!