*완전!!!! 기초부터 혼자 공부하면서 기록하기 위해 쓰는 글입니다. 부족한 부분이 많습니다. 혹시 가르쳐주실 부분이 있으시면 댓글 언제든지 환영합니다 :D
참고로, 이클립스를 사용했습니다!
문제:
자연수 n을 입력받아서 n줄만큼 다음과 같이 출력하는 프로그램을 작성하시오.
![]() 5 | ![]() * ** *** **** ***** |
일단 데이터값을 입력받기 위해서는
import java.util.Scanner; ☞ Scanner를 import해주고,
Scanner sc=new Scanner(System.in); ☞ Scanner 객체를 생성해줘야 합니다.
int n=sc.nextInt();
☞ 자연수 n을 입력받을 수 있도록 n 변수를 int형으로 만들어줍니다.
for(int i=1;i<=n;i++){
☞ for문은 while문과 같은 반복제어문 중 하나로 기본 구조는 for(초기값; 조건식; 증감식) 입니다
이런 출력 양식에서는 밖에 있는 for문은 안에 있는 for문이 실행될 동안 고정된 값을 정해줍니다.
첫번째 줄에서는 *이 1개, 두번째 줄에서는 *이 2개, 세번째 줄에서는 *이 세개...
이런 식으로 진행되기 때문에 i는 줄수라고 생각하면 됩니다.
int형 변수 i의 초기값을 일단 1로 설정해줍니다
두번째 부분인 조건식에는 반복문이 실행될 조건을 넣어줍니다. 이 조건식이 참일때만 반복문이 실행됩니다.
줄수는 1부터 n까지 출력되어야 하기 때문에 i가 n 이하라는 조건식을 넣어줍니다.
마지막 증감식 부분에는 반복문이 계속 돌아가는 무한루프를 벗어나기 위해 i의 값을 변경시켜주는 증감식을 넣어줍니다.
i++는 i=i+1과 같은 의미입니다.
for(int j=1;j<=i;j++){
☞ 안에 있는 for문에는 int형 변수인 j값을 넣어줍니다
여기서는 i가 1일때는 1번, 2일 때는 2번, 3일 때는 3번 실행되면서 *를 찍어야하므로 1부터 i까지 실행을 시켜줍니다.
System.out.print("*");
☞ print문은 괄호 안에 나오는 문장을 그대로 출력해주는 출력문입니다.
위처럼 조건을 생성하면 i가 1일때는 j가 1번, i가 2일 때는 j가 2번 돌면서 i만큼 *를 출력하게 됩니다.
System.out.println();
☞ println 출력문은 그냥 print문과는 달리 출력 후 자동으로 한줄을 바꿔줍니다. 그래서 line의 뜻인 ln이 뒤에 붙는거죠
안에 있는 for문에 넣을 경우에는 출력문 하나당 한줄씩 바뀌어버리기 때문에 i값이 바뀔 때마다 한줄을 바꿔주려면 밖에 있는 for문에 넣어야합니다.
for문이 실행되면서 i값에 따라 j가 *를 찍는것을 볼 수 있습니다.
10을 넣으면 별표가 1,2,3,4,5,6,7,8,9,10 순으로 더 길게 찍히겠죠?
*를 찍는 문제는 코딩을 처음 배울때 어느 수업에서건 다 배우는것 같더라구요
그만큼 기초문제니까 확실히 이해를 하고 넘어가야할것 같습니당 ㅠ.ㅠ
'JAVA > 정올 문제풀이' 카테고리의 다른 글
기초 다지기 551 : 반복제어문3 - 자가진단4 (0) | 2019.01.27 |
---|---|
기초 다지기 550 : 반복제어문3 - 자가진단3 (0) | 2019.01.27 |
기초 다지기 549 : 반복제어문3 - 자가진단1 (0) | 2019.01.22 |
기초 다지기 139 : 반복제어문2 - 형성평가A (0) | 2019.01.22 |
기초 다지기 138 : 반복제어문2 - 형성평가9 (0) | 2019.01.11 |