지난 주에 Java 클래스를 시작했고 과제 중 하나는 지금까지 수업에서 배운 내용을 사용하여 두 숫자의 GCD를 사용하는 프로그램을 만드는 것입니다 (그래서 내 프로그램 아마 가장 효율적이지는 않습니다). 이것은 내 프로그램이다.Java - 누락 된 반환 오류 수신
import java.util.*;
public class Program {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("Enter an integer");
int num1 = console.nextInt();
System.out.print("Enter an integer");
int num2 = console.nextInt();
int gcd = factor(num1, num2);
System.out.println("The GCD is " + gcd);
}
public static int factor(int num1, int num2) {
int big = Math.max(num1, num2);
int small = Math.min(num1, num2);
int bigabs = Math.max(Math.abs(num1), Math.abs(num2));
int smallabs = Math.min(Math.abs(num1), Math.abs(num2));
if (smallabs == 0) {
return bigabs;
}
if ((bigabs == 1) || (smallabs == 1)) {
return 1;
}
for (int i = smallabs ; i >= 1; i--) {
if ((num1 % i == 0) && (num2 % i == 0)) {
return i;
}
}
// This is where I need a return statement
}
}
return 문이 없어 컴파일 할 수 없습니다. 리턴 타입을 필요로하는 메소드가 메소드의 가능한 모든 브랜치에 대한 return 문을 선언해야하기 때문입니다 (틀린 경우 수정하십시오). 어느 시나리오에서나 숫자는 for 루프의 if 문을 통해 전달되지만 메서드는이를 알 수 없다는 것을 알고 있습니다. 그래서 내 질문에 어떤 진술을 넣어야합니까? 정말 중요합니까? 내가 아직 많이 배웠기 때문에 누군가 나에게이 사실을 자세히 설명 할 수 있습니까?
'return 1'을 추가하십시오. 다른 공통 분모는 없습니다. –
코드에서 해당 지점으로 이동할 수있는 방법이 없다면 거기에서 예외를 throw하십시오. 예외가 트리거되지 않으면 모든 것이 잘됩니다. 그럴 경우, 방법이 예상대로 작동하지 않는다는 것을 의미하며, 큰소리로 불만을 제기하는 것이 좋습니다. – yshavit
@yshavit 어떻게 예외를 throw합니까? 죄송합니다. 아직 자바에 대해 많이 알지 못합니다. – Srm