inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

구구단 만들기

구구단 질문

해결된 질문

347

김민준

작성한 질문수 6

0

 안녕하세요 나도코딩님

 

public class Main{
    public static void main(String[] args) {
        for (int i = 2; i <= 9 && 1 <= i; i++) {
            for (int j = 1; j < 10; j++) {
                System.out.println(i + " * " + j + " = " + (i * j));
            }
        }
    }
}

N은 1보다 크거나 같고 9보다 작거나 같다일때

N*1 부터 N*9까지 출력하는 문제를

for이중 반복문을 이용해서 이렇게 정답을 써봤는데

9보다 작거나 같은건 범위를적을때쓰면 되는거같은데

저렇게 1 <= N <=9 이런 범위일땐 어떻게 해야하는건지 모르겠네요..

oop java

답변 1

0

나도코딩

안녕하세요?
문제에서 원하는 것은 2를 입력하면 2단을, 3을 입력하면 3단을 출력하는 것입니다. 하지만 작성하신 코드는 구구단 전체를 출력하고 있어서 문제의 의도와는 조금 다른데요. for 반복문 내에서 1 <= N <= 9 를 의도하신 i <= 9 && 1 <= i 는 아주 잘 하셨습니다. i 가 1보다 크거나 같고 9보다 작거나 같다를 표현하신 것이므로 이는 맞습니다. 다만 코드를 아래와 같이 변경하게 되면 더욱 문제에서 원하는 형태의 결과를 얻으실 수 있을겁니다.

int N = 2; // 2단 출력
if (1 <= N && N <=9) {
    for (int i = 1; i <= 9; i++) {
        System.out.println(N + " * " + i + " = " + (N * i));
    }
} else {
    System.out.println("입력값이 잘못되었습니다. (1 <= N <= 9)");
}

N 에 2를 넣으면 실행 결과는 이렇습니다.

2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

N 에 0을 넣으면 실행 결과는 이렇습니다.

입력값이 잘못되었습니다. (1 <= N <= 9)

하지만 실제 코딩 테스트 입장에서 본다면 입력값의 범위가 1 <= N <= 9 라는 게 전제 조건이므로, 당연히 1보다 크거나 같고 9보다 작거나 같은 수만 입력된다는 가정 하에 코드를 작성하시면 됩니다. 아마 이런 정도로 작성하시면 될 것 같아요.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        for (int i = 1; i <= 9; i++) {
            System.out.println(N + " * " + i + " = " + (N * i));
        }
    }
}

이해에 도움되시길 바라겠습니다.
감사합니다 😊

0

김민준

맨밑 사진쪽에 Scanner sc 부분은 첨보는데

강의를보다보면 나오는부분인건가요??

구글링하면 답이 다 스캐너가 포함되어있더라고요..

0

나도코딩

네, Scanner 는 사용자로부터 입력을 받기 위해 사용되며 코딩 테스트에서는 거의 필수적으로 사용되는 문법입니다. 나도코딩 자바 기본편 강의의 맨 뒷쪽에서 자세히 설명됩니다 😊
감사합니다.

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

146

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

119

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

72

1

사고력 키우는 법이 어떤게 있나요?

0

94

2

getter setter

0

103

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

80

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

76

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

115

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

117

2

응용이 어렵습니다.

0

207

2

IntelliJ가 보이지 않습니다.

0

187

3

JDK 버전 문의

0

130

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

123

2

Iterator 문의

0

105

1

코드 순서 문의

0

143

1

클래스 메소드

0

150

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

120

2

HashMap

0

81

2