java方法练习

这是我在网上找的一些习题,自己写的代码,代码中有些不是很好

总目录

习题一

  1. 定义一个方法,该方法能够找出两个小数中的较小值并返回。在主方法中调用方法进行测试。
    代码如下:
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double mina = sc.nextDouble();
        double  minb = sc.nextDouble();
        double min = getMin(mina,minb);
        System.out.println("a = "+mina+"  b = " +minb+", 最小的小数为 "+min);

    }

    public  static double getMin(double mina,double minb){
        return mina>minb?minb:mina;
    }

习题二

  1. 定义一个方法,该方法能够找出三个整数中的最大值并返回。在主方法中调用方法测试执行。
    代码如下:
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();

        int max = getMaxInThree(a,b,c);
        System.out.println("a = "+a+" b = "+b+"  c "+c+" 最大的数为 "+max);

    }

    public static int getMaxInThree(int a,int b,int c){
        int scendmax = a>b?a:b;
        return scendmax > c ? scendmax:c;

    }

习题三

  1. 通过键盘录入两个整数n和m。n代表行数,m代表列数。定义一个方法,方法的功能是打印n行m列的@符号。执行效果如下:
请输入行数:
4
请输入列数:
5
@@@@@
@@@@@
@@@@@
@@@@@

代码如下:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int r = sc.nextInt();
        int c = sc.nextInt();

        print_r_c(r,c);
    }

    public  static void print_r_c(int r,int c){
        for(int i = 0;i<r;i++){
            for(int j =0 ; j < c;j++){
                System.out.print("@");
            }
            System.out.println("");
        }
    }

习题四

  1. 我们知道数学中有九九乘法表。请定义一个方法,方法的功能是打印nn乘法表。在主方法中键盘录入取值范围为[1-9]的变量n,测试方法。执行效果如下:
请输入一个1-9之间的整数:
4
乘法表:
1×1=1	
1×2=2	2×2=4	
1×3=3	2×3=6	3×3=9	
1×4=4	2×4=8	3×4=12	4×4=16

代码如下:

    public static void main(String[] args) {
        System.out.println("请输入一个1-9之间的整数:");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        print_n_n(n);
    }

    public static void print_n_n(int n){
        for(int i =1;i<=n;i++){
            for(int j = 1;j<=i;j++){
                System.out.print(j+"x"+i+"="+(i*j)+"\t");
            }
            System.out.println("");
        }
    }

习题五

  1. 在主方法中通过键盘录入三个整数。定义一个方法,方法接收三个整数变量,在方法中从大到小依次打印三个变量。执行效果如下:
请输入第一个整数:10
请输入第二个整数:30
请输入第三个整数:20
从大到小的顺序是: 30 20 10 

代码如下:

   public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入第一个整数:");
        int a = sc.nextInt();
        System.out.print("请输入第二个整数:");
        int b =sc.nextInt();
        System.out.print("请输入第三个整数:");
        int c = sc.nextInt();

        show_From_Max_To_Min(a,b,c);
    }

    public static void show_From_Max_To_Min(int a,int b,int c){
        int a1 = 0;
        int b1 = 0;
        int c1 = 0;
        int t =0;
        //先确定a和b大小
        if( a > b) {
            a1 = 1;
            t = a;
        }else{
            b1 = 1;
            t = b;
        }
//        在a最大的情况下比较b和c
        if(a1 == 1){
            if(c > b){
                System.out.println("从大到小的顺序是:"+a+" "+b+" "+c);
            }else {
                System.out.println("从大到小的顺序是:"+a+" "+c+" "+b);
            }
        }else{  //        在b最大的情况下比较a和c
            if(c > a){
                System.out.println("从大到小的顺序是:"+b+" "+c+" "+a);
            }else {
                System.out.println("从大到小的顺序是:"+b+" "+a+" "+c);
            }
        }


    }

习题六

  1. 数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试。
    代码如下:
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double a = scanner.nextDouble();

        double a_absolu = getAbsolu(a);
        System.out.println(a+"的绝对值为 "+a_absolu);

    }

    public static double getAbsolu(double a){
        if(a>=0){
            return a;
        }else {
            return 0 - a;
        }
    }

习题七

  1. 请定义一个方法,对正数的小数进行四舍五入的操作(不考虑负数情况)。四舍五入之后的结果是一个int整数类型并返回。最后对方法进行测试。
    代码如下:
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double a = scanner.nextDouble();

        int a_ = getInt(a);
        System.out.println("对"+a+"进行四舍五入为 "+a_);

    }

    public static  int  getInt(double a){
        int ax = (int)a;
        double axx =(double)ax;
        if(a < axx + 0.5){
            return ax;
        }else {
            return ax + 1;
        }

    }

习题八

  1. 一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}五个奖金。请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。打印效果如下:(随机顺序,不一定是下面的顺序)
888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出
    public static void main(String[] args) {

        int[] arr = new int[]{2,588,888,1000,10000};
		int[] newarr = new int[arr.length];
		Random random = new Random();
		int index =0;
		
		while(index < arr.length){
			int i = random.nextInt(arr.length);
			if(!exit(newarr,arr[i])){
				System.out.println(arr[i]+"元的奖金被抽出");
				newarr[index] = arr[i];
				index++;
				
			}
		}
    }
	public static boolean exit(int[] newarr,int data){

		for(int i = 0;i < newarr.length;i++){
			if( data == newarr[i]){
				return true;
			}
		}
		return false;
	}
  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值