java基础练习一

时间:2023-02-17 17:46:53
/*
 * 使用BufferedReader类 处理输入数据,得到整数
 */
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class InputData{
    private BufferedReader buf = null;
    public InputData() {
    this.buf = new BufferedReader(new InputStreamReader(System.in));
    }
    public String getString(String info) {
        String temp = null;
        System.out.print(info);
        try {
            temp = this.buf.readLine();
        }catch(IOException e) {
            e.printStackTrace();
        }
        return temp;
    }
    public int getInt(String info,String err) {
        int temp = 0;
        String str = null;
        boolean flag = true;
        while(flag) {
            str = this.getString(info);
            if(str.matches("^\\d+$")) {
                temp = Integer.parseInt(str);
                flag = false;
            }else {
                System.out.println(err);
            }
        }
        return temp;
    }
};

/*
 * 利用条件运算符的嵌套来完成
 * 学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
 */
public class Test05 {
    public static void main(String[] args) throws Exception{
        int i = 0;
        InputData input = new InputData();
        i = input.getInt("请输入成绩:","输入成绩格式有误,请重新输入!");
        String str1 = i>=90?"A":i>59?"B":"C";
        System.out.print("成绩等级为:");
        System.out.print(str1);
    }
};


/*
 * 输入两个正整数m和n,求其最大公约数和最小公倍数。
 * 辗转相除法
*/
public class Test06 {
    public static void main(String[] args) {
        int a = 0;
        int b = 0;
        InputData input = new InputData();
        a = input.getInt("请输入第一个数字:","输入数据必须是数字,请重新输入!");
        b = input.getInt("请输入第二个数字:","输入数据必须是数字,请重新输入!");
        int s = a*b/run(a,b);
        System.out.println("最大公约数为:" + run(a,b));
        System.out.println("最大公倍数为:" + s);
    }
    public static int run(int m,int n) {
        int i = Math.max(m, n);
        int j = Math.min(m, n);
        int z = i%j;
        if(z != 0) {
            return run(j,z);
        }else
            return j;
    }
}