2016-11-10 9 views
0

저는 Java를 배우려고 노력하는 초보자이므로 유명한 FizzBuzz 프로젝트를 수행하기 시작했습니다. 이 프로젝트에서는 사용자가 FizzBuzz 클래스의 인스턴스를 만들고 값을 전달해야합니다. 이제 다른 Java 클래스에있는 코드는 사용자가 전달한 숫자를 읽고 1에서 사용자가 넘긴 숫자의 목록을 만듭니다. 다음 연습을 할 때까지이 작업을 완료 할 수있었습니다. 세 가지 부울 메서드 (아래 참조)를 만드는 데 필요한 :개인 메서드와 공용 메서드간에 변수를 연결하는 방법

public class FizzBuzzRunner 
{ 
    private boolean fizz(int num) 
    { 
     return num % 3 == 0; 
    } 
    private boolean buzz(int num) 
    { 
     return num % 5 ==0; 
    } 
    private boolean fizzbuzz(int num) 
    { 
     return num % 3 ==0 && num % 5 == 0; 
    } 

    public void fizzBuzz(int num) 
    { 
     for (int i = 1; i < num + 1; i++) 
     { 
      if (fizzbuzz(num)) 
      { 
       System.out.println("FizzBuzz"); 
      } else if (fizz(num)) 
      { 
       System.out.println("Fizz"); 
      } else if (buzz(num)) 
      { 
       System.out.println("Buzz"); 
      } else { 
       System.out.println(i); 
      } 
     } 

    } 

이제 내 코드가 분명히 잘못되었습니다. 첫째, 공용 메서드 (int num)에서 변수를 연결하여 private 메서드에서 동일한 변수가되도록하려면 어떻게해야합니까? 두 번째 질문은 If 문 내부의 인수가 문제가없는 경우입니다. 소다 메소드가 true를 인쇄 "소다"등

답변

3

이 값을 전달할 경우 기본적으로 내가 원하는 것은, 예를 들면, i하지 num

public void fizzBuzz(int num) 
{ 
    for (int i = 1; i < num + 1; i++) 
    { 
     if (fizzbuzz(i)) 
     { 
      System.out.println("FizzBuzz"); 
     } 
     else if (fizz(i)) 
     { 
      System.out.println("Fizz"); 
     } 
     else if (buzz(i)) 
     { 
      System.out.println("Buzz"); 
     } 
     else { 
      System.out.println(i); 
     } 
    } 

} 
경우