지난 포스팅에서 자바의 반복문(for)에 대해서 다뤄봤습니다.
https://healthdevelop.tistory.com/entry/java4
복습 차원에서 반복문 예제를 풀어봅시다.
반복문 예제(복습용)
난이도 ★★☆☆☆
예제 1
Q : 출력을 다음과 같이 나오도록 한다.
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35
36 37 38 39 40 41 42
public static void ex10() {
int num=1;
for(int i=0; i<7 ; i++) {
for(int j=0; j<7; j++) {
System.out.printf("%2d ",num);
num++;
}
System.out.println();
}
}
public static void main(String[] args) {
ex10();
}
지난 포스팅에서 설명한 반복문 중에서 while문이 있었습니다.
다시 간단히 설명하자면,,,
while문은
- 조건식이 true일 때 문장 수행
- 문장 수행이 끝나면 조건식 다시 확인 후 true면 수행,
- 조건식이 false가 될 때까지 수행
- 조건식이 false가 되면 반복문 종료
위 순서로 진행됩니다.
결과는 1부터 10까지 한 줄씩 끊어서 출력이 됩니다.
그럼 반복문의 예제(while문)를 살펴봅시다.
반복문 예제(While)
난이도 ★☆☆☆☆
예제 1
Q : 영문자 소문자 a ~ z 까지 출력하시오.
예 ) a, b, c, d, e, f, g ... x, y, z
public static void ex1() {
char c = 'a';
while(c <= 'z') {
System.out.print(c++ + ", ");
}
}
public static void main(String[] args) {
ex1();
}
난이도 ★★☆☆☆
예제 2
Q : 다음과 같은 형식의 출력이 나오도록 하시오.
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
public static void ex2() {
int n = 1;
while(n <= 20) {
System.out.printf("%-5d",n);
if(n % 5 ==0)
System.out.println();
n++;
}
}
public static void main(String[] args) {
ex2();
}
난이도 ★★★★☆
예제 3
Q : 사용자가 입력한 정수값 범위에 해당하는 값만 출력하시오.
예)
최소값 : 11
최대값 : 99
열 수 : 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
...
...
91 92 93 94 95 96 97 98 99
public static void ex3() {
int num = 0, min, max, col;
System.out.print("최소값 : ");
min = sc.nextInt(); sc.nextLine();
System.out.print("최대값 : ");
max = sc.nextInt(); sc.nextLine();
if(min >= max) {
System.out.println("최소값은 최대값보다 클 수 없습니다.");
System.exit(0);
}
System.out.print("열 수 : ");
col = sc.nextInt(); sc.nextLine();
num = min;
while(num <= max) {
System.out.printf("%-5d", num);
if(num % col == 0 && num != col)
System.out.println();
num++;
}
}
public static void main(String[] args) {
ex3();
}
난이도 ★★★★☆
예제 4
Q : 사용자로 부터 임의의 문자열을 입력받은 후
a, e, i, o, u 문자가 얼마나 포함되어 있는지 확인하는 코드를 작성한다.
Tip 1.) 사용자가 입력한 문자열의 문자를 탐색하기 위해 .charAt(index) 메서드를
활용한다.
String text = "hello";
text.charAt(0); // 'h'
text.charAt(1); // 'e'
text.charAt(2); // 'l'
Tip 2.) 문자열의 길이를 알기 위해 .length() 메서드를 사용한다.
String text = "hello";
text.length(); // 5
public static void ex4() {
System.out.print("문자열을 입력하세요 : ");
String str = sc.nextLine();
int sum = 0, j=0;
int arr[] = new int[str.length()];
for(int i=0; i<str.length(); i++) {
arr[i] = str.charAt(i);
}
while(j < str.length()) {
switch(arr[j]) {
case 'a':
sum++;
break;
case 'e':
sum++;
break;
case 'i':
sum++;
break;
case 'o':
sum++;
break;
case 'u':
sum++;
break;
}
j++;
}
if(sum > 0) {
System.out.println("입력한 문장에서 a,e,i,o,u는 총 " + sum + "개 있습니다.");
}else {
System.out.println("입력한 문장에서 a,e,i,o,u는 없습니다.");
}
}
public static void main(String[] args) {
ex4();
}
저는 배열 방식으로 풀었지만, 아직 배열을 안배우신분들은
입력한 문자열 요소 하나하나를 char 로 다르게 받아주고,
switch 조건문만 바꿔주면 됩니다!
난이도 ★★★★☆
예제 5
Q : 100 ~ 999 범위에 해당하는 배수 값을 출력한다.
출력할 배수 값은 사용자 입력을 통해 알아낸다.
예)
배수 값 : 13
104 117 130 143 156
169 ...
...
... ... ... 988
public static void ex5() {
int num, max=0, j=0, i=1;
System.out.print("배수 값 : ");
num = sc.nextInt(); sc.nextLine();
while(max < 1000) {
max = num * i;
if(max >= 1000) {
break;
}
if(max > 100) {
System.out.printf("%-5d", max);
j++;
}
if(j % 5 == 0 && max >100)
System.out.println();
i++;
}
}
public static void main(String[] args) {
ex5();
}
이상 java의 조건문을 마치겠습니다.
다음 포스팅에선 java의 배열에 대해서 다뤄보고자 합니다.
'Java > Java' 카테고리의 다른 글
[Java] 자바 예제 | 자바 실습문제 | java 예제 (java로 웹개발하기)(day07) (0) | 2021.08.02 |
---|---|
[Java] 자바 배열의 기초 | 배열 예제 (java로 웹개발하기)(day06) (0) | 2021.07.30 |
[Java] 자바 반복문(java for, while,do-while) | 반복문 예제 (java로 웹개발하기)(day04) (0) | 2021.07.28 |
[Java] 자바 조건문(java if, switch) | 조건문 예제 (java로 웹개발하기)(day03) (0) | 2021.07.27 |
[Java] 자바 eclipse Git 연동하기 | 자바 프로젝트 생성 (java로 웹개발하기)(day02) (0) | 2021.07.26 |