第二次作业+105032014085
1、测试帖链接:第一次作业+105032014028
源码链接:UT源码 085
2、代码调整建议
1、在main方法里面当用户输入边的值不是整数时,在提示用户后应当从新让用户输入数据,最后不要直接退出。
2、可以用循环语句进行多次判断。
3、调整后代码
1 import java.util.InputMismatchException; 2 import java.util.Scanner; 3 4 public class TestDemo { 5 6 public static String Triangle(int side1,int side2,int side3)//判断是否构成三角形及三角形的种类 7 { 8 int temp; 9 if(side1>side2) {temp=side1;side1=side2;side2=temp;}//排个序让小数在前,大数在后(不能保证前两个数的顺序) 10 if(side2>side3) {temp=side2;side2=side3;side3=temp;} 11 12 String result="三角形"; 13 if(side1+side2<=side3) 14 return "不构成"+result; 15 else if(side1==side2 && side2==side3) 16 return "等边"+result; 17 else if(side1==side2 || side2==side3) 18 return "等腰"+result; 19 else if(side1*side1+side2*side2==side3*side3) 20 return "直角"+result; 21 else 22 return "普通"+result; 23 } 24 25 public static boolean Check(int num) //检验输入的数据是否属于[1,100] 26 { 27 if(num<1 || num>100) 28 { 29 System.out.println("边的值不在范围内!"); 30 return false; 31 } 32 return true; 33 } 34 35 public static void main(String[] args) 36 { 37 while(true) 38 { 39 Scanner scanner=new Scanner(System.in); 40 int side1=0,side2=0,side3=0; 41 boolean flag=true; //用于标记输入的数据是否合法 42 System.out.println("请输入三角形的三条边"); 43 try{ //捕获输入异常 44 side1=scanner.nextInt(); 45 side2=scanner.nextInt(); 46 side3=scanner.nextInt(); 47 } 48 catch(InputMismatchException e) //显示输入异常 49 { 50 flag=false; 51 System.out.println("请输入整数!"); 52 } 53 if(flag) //若输入有误则直接退出 54 if(Check(side1) && Check(side2) && Check(side3)) 55 System.out.println(Triangle(side1,side2,side3)); 56 } 57 } 58 }
4、心得体会
对输入的三个数字进行了排序,保证两个小数在前面,最大的数字在后面,这样再后续的判断中可以大大减少判断语句中逻辑表达式的长度,减轻测试工作的负担