스터디/JAVA
섹션6. 반복문
nnhhmm
2024. 11. 3. 16:15
초급
문제1. while 문을 사용하여 1부터 10까지의 숫자를 출력하는 코드를 작성하세요.
public class BasicEx01 {
public static void main(String[] args) {
int i = 1;
while(i<=10){
System.out.println(i);
i++;
}
}
}
문제2. 코드 작성: for 문을 사용하여 다음과 같은 형태로 숫자를 출력하세요.
1
2 3
4 5 6
7 8 9 10
public class BasicEx02 {
public static void main(String[] args) {
int num = 1;
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(num);
System.out.print(" ");
num++;
}
System.out.println("");
}
}
}
문제3. 코드 작성: for 문을 사용하여 5층의 피라미드 모양을 별(*)로 출력하세요.
*
***
*****
*******
*********
public class BasicEx03 {
public static void main(String[] args) {
int num = 5;
for (int i = 1; i <= num; i++) {
for (int j = num; j >= i + 1; j--) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println(" ");
}
}
}
중급
문제1. do-while 문과 continue 키워드를 사용하여 1부터 20까지 숫자 중 홀수만 출력하는 코드를 작성하세요.
public class MediumEx01 {
public static void main(String[] args) {
int i = 0;
do {
i++;
if (i % 2 == 0) continue;
System.out.println(i);
} while (i < 20);
}
}
문제2. 다음과 같은 형태의 별 피라미드를 for 문과 break 문을 사용하여 작성하세요. 5번째 줄에서 중단되도록 합니다.
*
***
*****
*******
public class MediumEx02 {
public static void main(String[] args) {
int num = 5;
for (int i = 1; i <= num; i++) {
for (int j = num; j >= i + 1; j--) {
System.out.print(" ");
}
for (int k = 0; k < 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println(" ");
if(i==4) break;
}
}
}
문제3. 중첩 반복문을 사용하여 다음과 같은 곱셈표를 출력하세요 (1부터 5까지).
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
public class MediumEx03 {
public static void main(String[] args) {
for(int i = 1; i<=5; i++){
for(int j=1; j<=5; j++){
if(j*i<10) {
System.out.print(" ");
}else{
System.out.print(" ");
}
System.out.print(j*i);
}
System.out.println("");
}
}
}
고급
문제1. for 문과 continue 키워드를 사용하여, 1부터 100까지 숫자 중 3과 5의 공배수인 숫자만 출력하는 코드를 작성하세요.
public record AdvancedEx01() {
public static void main(String[] args) {
for(int i=1; i<=100; i++){
if(!(i%3==0 && i%5==0))
continue;
System.out.println(i);
}
}
}
문제2. while 문과 break 문을 사용하여 다음과 같은 별 피라미드를 역방향으로 출력하세요. (예: 5층의 피라미드)
*********
*******
*****
***
*
public record AdvancedEx02() {
public static void main(String[] args) {
int num = 5;
int i = 0;
while (true) {
int j = 1;
int k = 2 * num - 1;
while (j <= i) {
System.out.print(" ");
j++;
}
while (k >= 2 * i + 1) {
System.out.print("*");
k--;
}
System.out.println("");
i++;
if (i > num)
break;
}
}
}
문제3. 중첩 반복문을 이용하여 다음과 같은 모양의 피라미드를 출력하세요 (층 수는 유동적으로 설정 가능해야 합니다).
1
2 2
3 3 3
4 4 4 4
public record AdvancedEx03() {
public static void main(String[] args) {
int num = 4;
for (int i = 0; i <= num; i++) {
for (int j = num; j > i; j--) {
System.out.print(" ");
}
for (int k = 1; k <= i; k++) {
System.out.print(i);
System.out.print(" ");
}
System.out.println("");
}
}
}