인프런 커뮤니티 질문&답변

개화동과자사장님의 프로필 이미지
개화동과자사장

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[7. Scanner][문제와풀이4] ScannerWhileEx3 질문

해결된 질문

작성

·

258

2

안녕하세요 선생님, 선생님께서 남겨주신 코드와 다르게 제 코드처럼 작성해도 무방할지 질문드립니다.

 

[선생님 코드] 선생님께서 작성하신 코드는 input 지역변수의 스코프 값이 넓습니다.

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    int sum = 0;
    int count = 0;
    int input = 0;

    System.out.println("숫자를 입력하세요, 입력을 중단하려면 -1을 입력하세요 : ");
    while (true) {
        input = scanner.nextInt();
        if (input == -1) {
            break;
        }
        sum += input;
        count++;
    }
    double average = (double) sum / count;
    System.out.println("입력한 숫자들의 합계 : " + sum);
    System.out.println("입력한 숫자들의 평균 : " + average);
}

[제가 작성한 코드] 저는 input의 스코프값이 넓다고 생각해서 자체적으로 while문에서만 해당 변수를 부여하고, 사용했는데 하기와 같이 사용해도 무방할까요?

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    int sum = 0;
    int count = 0;

    System.out.println("숫자를 입력하세요, 입력을 중단하려면 -1을 입력하세요 : ");
    while (true) {
        int input = scanner.nextInt();
        if (input == -1) {
            break;
        }
        sum += input;
        count++;
    }
    double average = (double) sum / count;
    System.out.println("입력한 숫자들의 합계 : " + sum);
    System.out.println("입력한 숫자들의 평균 : " + average);

 

답변 2

2

지역변수는 초기화하고 사용하는것을 지향합니다.쓰래기값이 출력이 될떄도 있기때문입니다.

감사합니다!

1

안녕하세요. 개화동과자사장님, 공식 서포터즈 OMG입니다.

input 변수의 사용 범위가 while문 루프안으로 제한되어 있을 때는 작성하신 코드처럼 하여도 무방합니다 😀

 

감사합니다.

감사합니다!

개화동과자사장님의 프로필 이미지
개화동과자사장

작성한 질문수

질문하기