请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。利用FindBugs查找程序中是否存在bug。
import java.util.Scanner;
public class GCD {
public void compare(int x,int y){
int i =x>y?x:y;
for(;i>0;i--){
if(x%i==0&&y%i==0){
System.out.println("a、b的最大公约数为"+i);
break;
}
}
return;
}
public static void main(String[] arg){
GCD demo = new GCD();
System.out.println("请输入x:");
Scanner num1 = new Scanner(System.in);
int x=num1.nextInt();
System.out.println("请输入y:");
Scanner num2 = new Scanner(System.in);
int y =num2.nextInt();
demo.compare(x, y);
}
}
按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径。
语句覆盖:
路径:a b c 测试用例: x = 1, y = 2
a e g x = 4, y = 0
a e f x = 5, y = 0
分支覆盖:
路径:a b c 测试用例:x = 1, y = 2
a b d x = 1, y = 1
a e g x = 4, y = 0
a e f x = 5, y = 0
import java.util.Scanner;
public class cover {
public cover(int x, int y){
if(x < 4||y > 0){
y = y + 1;
}else{
if(x>=5){
x = x - y;
}else{
x = x + y;
}
}
System.out.println("输出结果为 ;x ="+ x);
System.out.println("输出结果为:y =" + y);
}
public static void main(String[] args){
Scanner inputnum = new Scanner(System.in);
System.out.println("请输入第一个数x:");
int num1 = inputnum.nextInt();
System.out.println("请输入第二个数y:");
int num2 = inputnum.nextInt();
cover d = new cover(num1, num2);
d.cover(num1,num2);
}
private void cover(int num1, int num2) {
// TODO Auto-generated method stub
}
}
import org.junit.Test;
public class covertest {
public void testmain(){
int num1 = 2;
int num2 = 5;
cover d =new cover(num1, num2);
d.cover(num1,num2);
}
}