java练习-方法01

前言

知行合一:知道做不到等于不知道


1.方法中的练习:

1.1求两数之和

/*
求两数之和
*/
public class Add {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        int z = add(x,y);
        System.out.println(z);
    }
    public static  int add(int x, int y){
        return x+y;
    }
    }

注意:类的写法和psvm的写法


1.2键盘录入两个数据,返回两个数中的较大值

/*
	键盘录入两个数据,返回两个数中的较大值
*/
package cn.plsite.day04.demo01;

import java.util.Scanner;

public class Compare {
    public static void main(String[] arg){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数字");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数字");
        int num2 = sc.nextInt();
        comparsion(num1,num2);
    }

    public static void comparsion(int x, int y){
        //普通方式
//        if(x == y){
//            System.out.println(x+"等于"+y);
//        }else if(x > y){
//            System.out.println(x+"大");
//        }else{
//            System.out.println(y+"大");
//        }
        //三元改进
        if(x == y){
            System.out.println(x+"等于"+y);
        }else {
            int z = (x > y) ? x : y;
            System.out.println(z +"大");
        }
    }
}
标准答案:
import java.util.Scanner;

class FunctionTest {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入第一个数据:");
		int a = sc.nextInt();
		
		System.out.println("请输入第二个数据:");
		int b = sc.nextInt();
		
		int result = getMax(a,b);
		System.out.println("较大值是:"+result);
	}
	
	/*
		需求:两个q数中的较大值
		两个明确:
			返回值类型:int
			参数列表:int a,int b			
	*/
	public static int getMax(int a,int b) {
		//if语句
		/*
		if(a > b) {
			//System.out.println(a);
			return a;
		}else {
			//System.out.println(b);
			return b;
		}
		*/
		
		//用三元改进
		//int c = ((a > b)? a: b);
		//return c;
		
		//由于c就是后面的式子
		return ((a>b)? a : b);
	}
}

注意:
1.类的首字母大写,使用的System类及Scanner类首字母都要大写;
2.Scanner类使用:生成Scanner对象-》new Scanner(System.in);
3.使用Scanner成员方法:nextInt()获取键盘数据数字
4.三元运算后不能接语句,即(a>b)? 语句a : 语句b是错误的
5.三元运算前面的比较有括号,不要忘了


1.3键盘录入三个数据,返回三个数中的最大值

手写版:

/*
	键盘录入三个数据,返回三个数中的最大值
*/
import java.util.Scanner;

public class CompareThreeNum {
    public static void main(String[] arg){
        Scanner sc = new Scanner(System.in);
        System.out.println("输入第一个数:");
        int a = sc.nextInt();
        System.out.println("输入第二个数:");
        int b = sc.nextInt();
        System.out.println("输入第三个数:");
        int c = sc.nextInt();
        System.out.println("最大值是:"+compare(a,b,c));

    }
    //比较三个数中最大的数,并返回
    public static int compare(int a, int b, int c){
        int max;
        max = (a>b)?a:b;
        max = (c>max)?c:max;
        return max;
    }
}

答案:

import java.util.Scanner;

class FunctionTest3 {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入第一个数据:");
		int a = sc.nextInt();
		
		System.out.println("请输入第二个数据:");
		int b = sc.nextInt();
		
		System.out.println("请输入第三个数据:");
		int c = sc.nextInt();
		
		int max = getMax(a,b,c);
		System.out.println("三个数据中的最大值是:"+max);
	}
	
	/*
		需求;返回三个数中的最大值
		
		两个明确:
			返回值类型:int
			参数列表:int a,int b,int c
	*/
	public static int getMax(int a,int b,int c) {
		//if嵌套
		/*
		if(a > b) {
			if(a > c) {
				return a;
			}else {
				return c;
			}
		}else {
			if(b > c) {
				return b;
			}else {
				return c;
			}
		}
		*/
		
		//用三元改
		/*
		if(a > b) {
			return (a>c? a: c);
		}else {
			return (b>c? b: c);
		}
		*/
		
		//继续改进
		//return (a>b)? (a>c? a: c): (b>c? b: c);
		//不建议,写代码一定要注意阅读性强
		int temp = ((a>b)? a: b);
		int max = ((temp>c)? temp: c);//注意这里比较的思想
		return max;
	}
}

1.4方法的调用void类型方法的定义和调用

手写

/*需求:在控制台输出如下的形状
		*****
		*****
		*****
		*****
	*/	
package cn.plsite.day04.demo01;

public class Rectangle {
    //五乘四*输出,要求使用函数
    public static void main(String[] args) {

        rectangle(5,4);

    }
    public static  void rectangle(int x,int y ){
        for( int i = 0; i < y; i++) {
            for (int j = 0; j < x; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

答案:

class FunctionDemo3 {
	public static void main(String[] args) {
		//for循环嵌套输出图形
		for(int x=0; x<4; x++) {
			for(int y=0; y<5; y++) {
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println("--------------");
		
		//需求:我要在控制台输出一个6行7列的星形图形
		for(int x=0; x<6; x++) {
			for(int y=0; y<7; y++) {
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println("--------------");
		
		//如果需要继续改变,我们就应该考虑使用方法改进。
		//单独调用
		pringXing(3,4);
		System.out.println("--------------");
		pringXing(6,7);
		System.out.println("--------------");
		pringXing(8,9);
		
		//输出调用
		//此处不允许使用 '空' 类型
		//System.out.println(pringXing(3,4));
		
		//赋值调用
		//非法的表达式开始
		//void v = pringXing(3,4);
	}
	
	/*
		写一个什么样子的方法呢?写一个m行n列的代码
		
		两个明确:
			返回值类型:这个时候没有明确的返回值,不写东西还不行,所以,这里记住是void
			参数列表:int m,int n
	*/
	public static void pringXing(int m,int n) {
		for(int x=0; x<m; x++) {
			for(int y=0; y<n; y++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

注意:返回值是空(void)的函数不能使用复制调用和输出调用

1.5键盘录入一个数据n(1<=n<=9),输出对应的nn乘法表

首次写

/*
	键盘录入一个数据n(1<=n<=9),输出对应的nn乘法表
*/

package cn.plsite.day04.demo01;

import java.util.Scanner;

public class MultiplicationTable {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个1-9数字");
        int num = sc.nextInt();
        if(num >= 1 && num <= 9){
            mult(num);
        }else {
            System.out.println("超出范围");
        }
    }
    public static void mult(int n){
        for(int i = 1 ; i < n+1; i++){
            for(int j = 1 ;j < n+1; j++){
                System.out.print(i+"*"+j+"="+(i*j)+" ");
            }
            System.out.println();
        }
    }
}

答案:

import java.util.Scanner;

class FunctionTest5 {
	public static void main(String[] args) {
		//创建对象
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入n的值:(1~9)");
		int n = sc.nextInt();
		
		//调用
		printNN(n);
	}
	
	/*
		需求:输出对应的nn乘法表
		两个明确:
			返回值类型:void
			参数列表:int n
	*/
	public static void printNN(int n) {
		for(int x=1; x<=n; x++) {
			for(int y=1; y<=x; y++) {
//这里只能一行一行打印,故:x做控制变化的(放在右边),y从1开始变化(放在左边)
				System.out.print(y+"*"+x+"="+y*x+"\t");
			}
			System.out.println();
		}
	}

重写:

package cn.plsite.day04.demo01;

import java.util.Scanner;

public class MultiplicationTable {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个1-9数字");
        int num = sc.nextInt();
        if(num >= 1 && num <= 9){
            mult(num);
        }else {
            System.out.println("超出范围");
        }
    }
    public static void mult(int n){
        for(int i = 1 ; i <= n; i++){
            for(int j = 1 ;j <= i; j++){
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println();
        }
    }
}

注意:1、循环变量的范围
2、\t运用可以使打印更整齐
3、第二层循环应该是避免重复相乘,二层循环变量小于一层。


1.6方法重载练习比较数据是否相等

自己写的:

/*
	比较两个数据是否相等。参数类型分别为
		两个byte类型,两个short类型,两个int类型,两个long类型,
	并在main方法中进行测试
*/

package cn.plsite.day04.demo01;

/*
   比较两个数据是否相等。参数类型分别为
      两个byte类型,两个short类型,两个int类型,两个long类型,
   并在main方法中进行测试
*/

public class OverMethod {

    public static void main(String[] args) {
        
        System.out.println(isEqual(2,3));
        System.out.println(isEqual(101,1011111111));

    }

    public static boolean isEqual(byte x,byte y){
        return x == y;
    }

    public static boolean isEqual(int x,int y){
        return x == y;
    }

    public static boolean isEqual(long x,long y){
        return x == y;
    }
}

答案:

class FunctionTest6 {
	public static void main(String[] args) {
		//测试
		byte b1 = 3;
		byte b2 = 4;
		System.out.println("byte:"+compare(b1,b2));
		
		//测试
		short s1 = 5;
		short s2 = 5;
		System.out.println("short:"+compare(s1,s2));
		
		//后面的两个自己测试
	}
	
	//byte类型
	public static boolean compare(byte a,byte b) {
		System.out.println("byte");
		return a == b;
	}
	
	//short类型
	public static boolean compare(short a,short b) {
		System.out.println("short");
		return a == b;
	}
	
	//int类型
	public static boolean compare(int a,int b) {
		System.out.println("int");
		return a == b;
	}
	
	//long类型
	public static boolean compare(long a,long b) {
		System.out.println("long");
		return a == b;
	}
}

注意:
1.在测试时候应该注意区分
2.每个类型变量应该分开定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值