Programming/Java \ Spring

[자바 예제연습] while문 사용해서 구구단 출력하기

안녕하세요

코딩 배우는 중인 새내기입니다

 

자바 예제로 공부하기 위해 연습문제,

그리고 풀이과정을 남겨보려합니다.

 

[문제] 임의의 숫자를 입력받아 해당 숫자의 1배부터 9배까지 출력하기

(해당 숫자의 구구단 출력)

 

 

 

 

** 쉽게 공부하는 방법

주석을 달면서 문제를 풉니다.

 

 

아래는 답&풀이입니다.

코드는 사람마다 다를수 있으며,

다른 값을 대입했을때도 원하는 결과가 나온다면

잘 작성한 코드입니다.

 

저와 다르게 코딩하신 분이 계시다면

댓글로 해당 코딩을 남겨주시면

공부하는데 많은 도움이 될 것 같습니다

 


 

 

저는 중괄호가 많아지면 헷갈려서 중괄호에도 주석을 달았습니다

 

[문제] 임의의 숫자를 입력받아 해당 숫자의 1배부터 9배까지 출력하기

(해당 숫자의 구구단 출력)

 

1. 임의의 숫자를 입력받기 위해 필요한 것

 

클래스 Scanner,

 

import java.util.Scanner;

>> Scanner 클래스는 java.util이라는 패키지?에 위치해있습니다.

따라서 위치를 알려주지않으면 컴파일러가 찾지 못해서 오류가 납니다.

Scanner를 쓰기 위해서는 꼭 코딩해야합니다.

  

Scanner num = new Scanner(System.in);

>> num 은 변수명으로 변수명명 규칙에 맞춰 임의로 적으면 됩니다.

system.in 은 시스템에 표준입력이 키보드임으로

키보드로 입력한 문자열?을 받아 num이라는 변수에 대입합니다.

 

int gugu = num.nextInt();

>> 스캐너변수(num)에 정수형을 키보드로 입력받고 

 gugu라는 정수형 변수에 대입합니다.

입력받은 내용을 맞는 데이터타입 변수에 넣지 않으면, 객체에 저장된채로 사용하지 못합니다.

 

Scanner 클래스의 메소드에는 nextInt 외 여러가지가 있으나,

.next() - 텍스트, 문자열 .nextInt() - 정수형 .nextdouble() - 실수형

제일 많이 씁니다.

(int, double 타입이 기본형이기 때문에)

 

 

 

 

입력받은 숫자에 1~9를 곱한 식을 출력하기 위해

1~9로 변할 변수를 새로 선언하고 반복문 while을 사용했습니다.

 

while문 형식

while(조건문) { 반복 실행문 }

조건문의 값이 true가 되어야 실행문이 반복됩니다.

반복할 실행문이 계속해서 반복되면 프로그램이 끝나지 않기 때문에

실행문이 반복되면서 조건문이 false가 될수 있도록

실행문을 코딩해야됩니다.

 

조건문 : i<=9

1~9까지만 곱해줄거기 때문에 i가 9를 초과하면 반복문을 실행하지 않습니다.

 

반복문 : System.out.printf("%d * %d = %2d\n", gugu, i, gugu*i);

i++;

(역슬러시 특수문자가 어딨는지 찾기 어려워 \로 대신했습니다)

 

출력에는 println() print() printf() 가 있습니다.

println(), print() 는 형식이 따로 있지 않고

출력후 줄바꿈을 하는지 하지 않는지 정도의 차이만 갖습니다.

따라서 printf를 사용했지만 println 또는 print 로도 같은 값을 출력할수 있습니다.

 

System.out.printf() 형식

System.out.printf("형식문자열", 출력값)

2 * 1 = 2 가 형식문자열에 해당하고, 표기는 "%d * %d = %d"

출력값 부분은 형식문자열 속 각각의 d에 들어갈 변수 또는 데이터값을 넣어줍니다.

 

따라서 조건문이 false가 되도록,

변수 i 를 반복할때마다 증가하도록 반복실행문 안에 증감식을 넣어줍니다.

(증감식 : i++ )

 

 


 

 

번외_ do-while 반복문으로 변형

 

do-whil문 형식

do{반복문} while(조건식);

 

do-while문과 while문의 차이는

조건식을 실행문 전에 확인하는지 후에 확인하는지 입니다.

do-while문은 실행 후 조건을 확인하기 때문에

최초 1회는 무조건 실행하고,

while문은 조건을 먼저 확인 후 실행문을 반복하기 때문에

조건식이 false일 경우 실행문을 실행하지 않습니다.