풀이과정 🤷♂️
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt();
for(int i = 1; i<=a; i++)
System.out.println("*");
}
}
입력값 4
결과값
*
*
*
*
- 이게 되는게 신기해서 충격먹음..
- 세로로 출력은 했으니 가로롤 출력하면 될것 같은데
- 그렇다면 이중 for문인것인가
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt();
my.close();
for(int i = 1; i<=a; i++)
for(int j = 1; j<=a; j++)
System.out.println("*");
}
}
입력값 2
결과값 = 입력값 두배로 별표 출력
*
*
*
*
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt();
my.close();
for(int i = 1; i<=3; i++) {
for(int j = 1; j<=3; j++) {
System.out.println("*");
}
System.out.println();
}
}
}
입력값2
결과값 = 2마다 공백 생성
*
*
*
*
- for문 대괄호의 중요성을 깨달음.
- 계속 가로로 안되서 스트레스 받음.
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt();
my.close();
for(int i = 1; i<=a; i++) {
for(int j = 1; j<=a; j++) {
System.out.print(j+""); //이부분을 print로 바꾸니까 가로로 바뀜
}
}
}
}
입력값 3
결과값 = 가로로 3연속 반복
123123123
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt();
my.close();
for(int i = 1; i<=a; i++) {
for(int j = 1; j<=a; j++) {
System.out.print(j+"");
}
System.out.println(); //줄바꿈
}
}
}
입력값 3
결과값 = 세로로 3번 반복
123
123
123
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt();
my.close();
for(int i = 1; i<=a; i++) { //세로 3
for(int j = 1; j<=a; j++) { //가로 3
System.out.print("*");
}
System.out.println();
}
}
}
입력값 3
결과값 = 가로세로 3배수
***
***
***
- 가로부분이 한번에 다 실행이 되서 문제
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt();
my.close();
for(int i = 1; i<=a; i++) {
for(int j = 1; j<=a;) {
System.out.print("*");
j++; } // j증감식의 자리를 옮겼지만 위와 같은 결과값 출력
System.out.println();
}
}
}
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt();
my.close();
for(int i = 1; i<=a; i++) {
for(int j = 1; j<=a;) {
System.out.print("*");
break; } // break 추가
System.out.println();
}
}
}
입력값4
결과값
*
*
*
*
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int j;
int a = my.nextInt();
my.close();
for(int i = 1; i<=a; i++) {
for(j = 1; j<=a; j++) { //j++ 이부분이 데드코드가 됨.
System.out.print("*");
break; }
System.out.println();
}
}
}
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt(); //a 입력값 받는 객체 생성
my.close();
for(int i = 1; i<=a; i++) {
for(int j = 1; j<=a; j++) {
System.out.print("*");
if (j>=i)
break; }
System.out.println();
}
}
}
입력값 4
결과값
**
***
****
****
정답🙆♂️
package forStatement;
import java.util.Scanner;
public class shootAStar1 {
public static void main(String[] args) {
Scanner my = new Scanner(System.in);
int a = my.nextInt(); //a의 입력값을 받는 객체 생성
my.close();
for(int i = 1; i<=a; i++) {
for(int j = 1; j<=a; j++) { //이중 for문으로 가로세로 별찍기
System.out.print("*");
if (j>=i) // 조건문을 통해 별의 수 조정
break; }
System.out.println();
}
}
}
입력값 7
결과값
*
**
***
****
*****
******
*******
- 혹시나 싶었는데 정답!
- 반복문 흐름도를 정확하게 이해하는 것이 도움이 되었다.
반복문 흐름에 도움이 되었던 자료들
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 14681번 : 사분면 고르기 (JAVA-자바) (0) | 2021.07.23 |
---|---|
[백준] 2753번 : 윤년 (JAVA-자바) (0) | 2021.07.23 |
[Java] for문 - 기찍N (2742번) (0) | 2021.06.20 |
[Java] for문 - N찍기 (2741번) (0) | 2021.06.20 |