본문으로 바로가기
반응형

 

 

 

 

 

 

지난 포스팅에서 자바의 반복문(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의 배열에 대해서 다뤄보고자 합니다.



 

반응형