java基础练习一
2020-12-13 03:03
标签:main exception parse OLE 输入 code lin col 格式 java基础练习一 标签:main exception parse OLE 输入 code lin col 格式 原文地址:https://www.cnblogs.com/MHX-ledde/p/11064894.html/*
* 使用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;
}
}