while문과 for문을 자유자제로 바꿔가며 쓰는게 익숙치 않음😦
① 초기값
② 종료조건
③ 스텝 (보폭 및 방향)
④ 반복하고싶은거
int i = 1; // ① 초기값
while (i <= 1000) { // ② 종료조건
System.out.println(dan + " * " + i + " = " + dan * i); // ④ 반복하고싶은거
i++; // ③ 스텝
}
// 문제 : 아래와 같이 출력해주세요.
// 문제 : 단을 * 1000까지 출력해주세요.
class Main {
public static void main(String[] args) {
int dan = 8;
int i = 1;
while (i <= 1000) {
System.out.println(dan + " * " + i + " = " + dan * i);
i++;
}
}
}
// 문제 : 1부터 5까지 출력해주세요.
class Main {
public static void main(String[] args) {
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
}
}
//문제 : -100부터 25까지 출력해주세요.
class Main {
public static void main(String[] args) {
int i = -100;
while (i <= 25) {
System.out.println(i);
i++;
}
}
}
// 문제 : 아래와 같이 출력해주세요.
// 문제 : 구구단 8단을 출력해주세요. 1000부터 1까지 곱해주세요.
// 조건 : 곱하는 순서를 거꾸로 해주세요.
class Main {
public static void main(String[] args) {
int dan = 8;
int i = 1000;
while (i >= 1) {
System.out.println(dan + " * " + i + " = " + dan * i);
i--;
}
// 출력
/*
* 8 * 1000 = 8000 ... 8 * 1 = 8
*/
}
}
// 문제 : 아래와 같이 출력해주세요.
// 문제 : 구구단 8단을 출력해주세요. 1000부터 -500까지 곱해주세요.
class Main {
public static void main(String[] args) {
int dan = 8;
int i = 1000;
while (i >= -500) {
System.out.println(dan + " * " + i + " = " + (dan * i));
i--;
}
// 출력
/*
* 8 * 1000 = 8000 ... 8 * 1 = 8
*/
}
}
// 1부터 5까지의 합을 더한 결과를 출력해주세요.
class Main {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i <= 5) {
sum += i;
i++;
}
System.out.println(sum);
}
}
//-100부터 25까지의 합을 더한 결과를 출력해주세요.
class Main {
public static void main(String[] args) {
int sum = 0;
int i = -100;
while (i <= 25) {
sum += i;
i++;
}
System.out.println(sum);
}
}
// 문제 : 1부터 3까지 출력하는 작업을 10번 해주세요.
// 조건 : 이중 while문 사용
class Main {
public static void main(String[] args) {
int k = 1;
while (k <= 10) {
int i = 1;
while (i <= 3) {
System.out.println(i);
i++;
}
k++;
}
}
}
break; 여기서 멈춰
continue; 아래 코트 스킵하고 다시 올라가서 계속해
class Main {
public static void main(String[] args) {
int num = 0;
while (num < 5) {
if (num == 3) {
break;
}
System.out.println("num : " + num);
num++;
}
}
}
// ① 초기값; ② 종료조건; ③ 스텝
for ( int i = 1; i <= 3; i++) {
System.out.println(i); // <- ④ 반복하고싶은거
}
//문제 : 1부터 5까지 출력해주세요.
class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
}
}
//문제 : -100부터 25까지 출력해주세요.
class Main {
public static void main(String[] args) {
for (int i = -100; i <= 25; i++) {
System.out.println(i);
}
}
}
//문제 : 구구단 8단을 출력해주세요. 1000부터 1까지 곱해주세요.
class Main {
public static void main(String[] args) {
int dan = 8;
for (int i = 1000; i >= 1; i--) {
System.out.println(dan + " * " + i + " = " + (dan * i));
}
}
}
//문제 : 구구단 8단을 출력해주세요. 1000부터 -500까지 곱해주세요.
class Main {
public static void main(String[] args) {
int dan = 8;
for (int i = 1000; i >= -500; i--) {
System.out.println(dan + " * " + i + " = " + (dan * i));
}
}
}
//문제 : 1부터 5까지의 합을 출력해주세요.
class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum += i;
}
System.out.println(sum);
}
}
//문제 - 음수 100부터 25까지의 합을 출력해주세요.
class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = -100; i <= 25; i++) {
sum += i;
}
System.out.println(sum);
}
}
// 문제 : 1부터 3까지 출력하는 작업을 10번 해주세요.
// 조건 : 2중 for문 사용
class Main {
public static void main(String[] args) {
for (int k = 1; k <= 10; k++) {
for (int i = 1; i <= 3; i++) {
System.out.println(i);
}
}
}
}
// 1번 ) 왜 결과가 저렇게 나오는가?? 를 서술 (순차적으로, 우리말로)
class Main {
public static void main(String[] args) {
int rows = 5;
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
// 큰반복문을 사용해서 행의 갯수를 출력
// 작은반복문을 사용해서 *을 출력
// 순차적으로 i가 1일 때
// row라는 변수에 5라는 값을 넣음
// "* "를 반복해서 row 수만큼 출력
// 그러다 i가 6이 됐을때 조건문과 일치하지 않아서 실행을 멈추고 끝.
//결국 1행씩 행의 줄 수 만큼 "* "의 갯수를 줄바꿈하면서 출력
// 2번 ) 왜 결과가 저렇게 나오는가?? 를 서술 (순차적으로, 우리말로)
class Main {
public static void main(String[] args) {
int n = 5; // This is the number of row for the of half of the diamond
// 규칙이 생성 됨. 2n - 1 이 행의 갯수
// Upper part of the diamond
for (int i = 1; i <= n; i++) {
// Printing spaces
for (int j = i; j < n; j++) {
System.out.print(" ");
}
// Printing stars
for (int j = 1; j <= (2 * i - 1); j++) {
System.out.print("*");
}
System.out.println();
}
// Lower part of the diamond
for (int i = n - 1; i >= 1; i--) {
// Printing spaces
for (int j = n ; j > i; j--) {
System.out.print(" ");
}
// Printing stars
for (int j = 1; j <= (2 * i - 1); j++) {
System.out.print("*");
}
System.out.println();
}
}
}
// 첫번째 큰 반복문안에 n이라는 변수는 마름모꼴의 위에서부터의 행 갯수
// 그 안의 첫번째 작은반복문은
// ( j < n ) -> j가 5미만까지 몇칸을 띄어쓰기 할지 정함 / 이 조건이 참이 되는 수 만큼 띄어쓰기를 함
// 두번째 작은반복문을 실행
// (2 * i - 1) <- "*"의 갯수를 출력 (홀수의 숫자만 나옴)
// 줄바꿈
// 총 5줄의 행이 순차적으로 띄어쓰기칸을 1씩 감소시킴과 동시에
// "*"은 씩 2씩 증가시키며 출력 / (2 * i - 1) < - "*"의 갯수를 출력
// 왜 2씩 증가하냐면 i에 2를 곱하고 1을 뺌 (홀수의 숫자만 나옴)
// 두번째 큰 반복문안에 i는 몇개의 행을 사용할지 알려줌
// 첫번째큰반복문의 행 갯수보다 한줄 적음 (i = n - 1)
// (j > i) <- 이 조건이 참이 되는 수 만큼 띄어쓰기를 함
// (2 * i - 1) < - "*"의 갯수를 출력 (홀수)
// 결론: 2n - 1의 높이를 가진 마름모꼴
// i값의 따라서 공백의수와 별의 수가 결정된다
// 다이아몬드에는 상단과 하단으로 나뉜다
// 전체 크기는 n = 5;
// i는 한 행을 그릴때마다 공백을 몇개? 별을 몇개?

💡 변수의 값을 바꿔가며 세부사항들이 왜 쓰여져있는가 파악해보기