2016-10-04 2 views
0

divute 클래스의 computeDivisor 클래스에있는 "compute"메서드를 인쇄하고 싶습니다. 제 약자가 누구인지 어떻게 알 수 있습니까?다른 클래스의 메소드 결과를 인쇄하는 방법은 무엇입니까?

public static void main(String[] args) { 
    Scanner s = new Scanner(System.in); 
    computeDivisors cD = new computeDivisors(); 
    System.out.println("Enter an integer: "); 
    int num = s.nextInt(); 
    System.out.println("The divisors of " + num + " are: "); 
    cD.compute(); //Why doesn't it print? 
    s.close(); 
} 

-

public void compute(){ 
    for (i = 2; i <= num/2; i++) { 
    if (num % i == 0) { 
     System.out.print(i + " , "); 
     } 
    } 
} 

}

+0

변수'num'을'public void compute()'에 어떻게 전달합니까? 매개 변수 여야합니까? – Andreas

답변

1

당신이 방법은 매개 변수로 필요한 데이터를 전달해야 그것을 컴퓨팅 기능에서 인쇄하는 것이 아니라 계산 된 값을 반환하는 것이 좋습니다. 함수는 한 가지를해야합니다.이 경우 한 가지가 값을 계산하는 것입니다. 나중에이 값을 계산하여 다른 계산에서 사용하거나 STDOUT이 아닌 다른 위치에 표시하려는 경우 어떻게 될지 고려하십시오. 함수를 다시 작성해야합니다. 값을 반환 한 다음 반환 할 때 필요한 값으로 수행하면 프로그램 유연성이 향상됩니다.

0

num 정수 방법의 범위를 벗어나 있기 때문이다. 변수로 num 변수를 사용해야합니다. 즉, 변수에 num 변수가 없습니다.

0

num 변수가 심지어 compute() 방법으로 전달되지 않는 것처럼 보입니다. 또한 Divisors도 볼 수없고 computeDivisor 클래스도 아닙니다 (이름은 ComputeDivisor이어야합니다). 내가 디자인 노트를 추가 할 수 있습니다

cD.compute(num); 

:이 매개 변수를 사용하여 호출 한 다음 방법을

public void compute(int num){ 
    for (i = 2; i <= num/2; i++) { 
    if (num % i == 0) { 
     System.out.print(i + " , "); 
     } 
    } 

과 :

관련 문제