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

코딩하는곰돌이님의 프로필 이미지

작성한 질문수

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

문제와 풀이2

섹션7, 문제와 풀이2 번째 강의에서 질문있습니다.

작성

·

428

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요 강사님 항상 좋은 강의 들려주셔서 감사합니다.

다름이아니라 섹션7 문제와 풀이2번 풀이과정중 궁금한점이 있어서 질문드립니다.

문제를 혼자풀다보니 스크린샷 2023-12-07 오전 9.18.10.png스크린샷 2023-12-07 오전 9.18.22.png

이런 풀이와 해답 결과를 도출하였는데

이부분에서 작은숫자가 항상 같이 출력되어 이부분을 해결할수있는 좋은 방법이 있는지 여쭤보려고 글 남겨드렸습니다.

감사합니다.

답변 2

0

안녕하세요. 이준원님, 공식 서포터즈 OMG입니다.

강의에서 영한님의 풀이와는 다르게

크고 작은 수를 교환하는 temp 변수를 두어 값을 교환하지 않고 반복문으로 처리하려는 것 같습니다 ^^

강의 예제 기준

입력

3, 8 혹은 8, 3

 

출력

3 ~ 8까지의 정수

인 반면 이준원님의 결과는 큰 숫자로 입력한 경우 출력되지 않고 있네요 ^^

 

if 문 안의 for 반복문이건, else if문의 for반복문이건 반복 횟수가 1적다는 것이 눈에 띄네요.

다른 조건과 초깃값은 수정하지 않고 아래와 같이 반복 횟수만 (+1)늘리면 될 것으로 짐작 할 수 있습니다.

if (num1 > num2) {
    for (int i = num2; i < num1 + 1; i++) {
        System.out.println(num2 + "과" + num1 + "의 사이의 수는 =" + i);
    }
} else if(num2 > num1) {
    for (int i = num1; i < num2 + 1; i++) {
        System.out.println(num1 + "과" + num2 + "의 사이의 수는 =" + i);
    }
}

 

참고로 첫번째 수와 두번째 수가 같은 경우( ex) 5, 5) 에는 if 조건과 else if조건에 포함하지 않아 결과가 출력되지 않아 이 부분의 결과 값은 강의와 차이가 있으니 개선해보면 좋을 것 같습니다 😀

 

감사합니다.

0

for(int i = num1 + 1; i < num2; i++){
...
}

저도 해당 부분의 강의를 본 건 아니라 질문의 의도는 정확하게 모르겠는데 혹시 for문의 조건식을 이런 식으로 쓰면 i가 3, 4, 5, 6, 7만 출력 되지 않을까요?