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

Teo님의 프로필 이미지
Teo

작성한 질문수

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

문제와 풀이4

ScannerWhileEx3 에서 질문있습니다 !

작성

·

134

·

수정됨

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
조금 논외 질문이긴 하지만 while (true)로 무한루프를 돌려서 -1을 입력한 후 숫자들의 합계와 평균이 나오게 만들고나서도 프로그램이 종료가 안되고 다음 계산을 하는 형식으로는 어떤식으로 코딩을 할 수 있을까요? ㅠㅠ

ex

1

2

3

4

총합 10을 출력 후 그대로 이어서 프로그램이 종료가 되지않구 다음 숫자를 입력했을때 다시 이후부터 누적된 총합을 계싼하는 형식으로도 코딩이 가능할까요?

그리구 아예 총합을 초기화 후 다시 출력하는 방식도 가능한지 궁금합니다 ...

if로 넣어서 혼자 만들어보려고했는데 변수가 안만들어지는건지 계속 컴파일 오류가 떠서요 ㅠㅠ

답변 2

0

안녕하세요. Teo님, 공식 서포터즈 y2gcoder입니다.

import java.util.Scanner;

public class ScannerWhileEx3 {

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

        int sum = 0;
        int count = 0;
        int input = 0;
        
        int resetNumber = -1;
        int exitNumber = -99999;

        System.out.println("숫자를 입력하세요. 결과 출력 후 초기화 하려면 -1을, 종료하려면 -99999를 입력하세요.");

        while ((input = scanner.nextInt()) != exitNumber) {
            if (input == resetNumber) {
                double average = (double) sum / count;
                System.out.println("입력한 숫자들의 합계: " + sum);
                System.out.println("입력한 숫자들의 평균: " + average);
                //초기화
                sum = 0;
                count = 0;
                continue;
            }
            sum += input;
            count++;
        }
    }

}

간단하게 만들어보았습니다!

종료하는 것도 필요할까 싶어 임의로 -99999가 넣으면 프로그램이 종료되도록 했습니다 🙂

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. Teo님의 질문에 대해, 유사한 상황을 해결하는 기존 답변을 하나 찾았습니다. 질문자분께서는 while loop을 사용해 숫자들의 합과 평균을 계산한 뒤, 특정 조건(-1을 입력)으로 반복을 종료하고자 하시는 것 같습니다. 다음으로 프로그램이 종료되지 않고 새로운 숫자 입력을 기다리며, 이전과 동일한 연산을 반복하고자 합니다.

이와 관련해 다음 답변이 도움이 될 수 있을 것 같습니다:
- “ScannerWhileEx4 변수 질문”: 이 질문에서는 Scanner를 사용한 반복 입력 처리 방법과 변수의 처리에 대한 설명이 있어, 반복문 내에서 변수를 재사용하고 조건에 따라 프로그램의 흐름을 어떻게 제어할 수 있는지에 대한 인사이트를 얻을 수 있을 것 같습니다. 변수를 초기화하는 방법과 조건에 따른 분기처리 방법 등, 질문하신 내용에 대한 해결책을 제공할 수 있습니다.

질문의 핵심은 while loop와 조건문을 사용해 반복적으로 사용자로부터 입력을 받아 합계와 평균을 계산하며, 특정 조건을 만족할 때까지 프로그램을 종료하지 않고 계속해서 입력을 받는 로직의 구현 방법에 대한 것입니다. 이 과정에서 합계를 초기화하거나 이전 계산 결과를 기반으로 다음 계산을 수행하는 방식에 대한 질문이 포함되어 있습니다.

링크된 답변에서는 유사한 문제 상황에 대해 다루고 있으며, 특히 다음과 같은 포인트에 주목하면 좋습니다:
- 변수 초기화 방법
- 반복문 내에서 조건에 따른 흐름 제어
- 사용자 입력 처리와 해당 입력에 따른 로직 분기

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Teo님의 프로필 이미지
Teo

작성한 질문수

질문하기