ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 반복문(while문), break문, continue문
    개발/자바JAVA 2024. 1. 23. 15:48

    ▶While 문

      > 반복 횟수를 정확히 알 수 없을때 사용. (물론 알때도 사용가능.)

      >  [표현법]

         

      >조건식의 결과가 true일 경우 중괄호 안의 구문을 "반복적" 으로 실행함. 

    조건식을 충족할 때 까지 반복된다.

     

     

    > while문은 조건식이 끝나고도 최종값을 확인할 수 있다.

     

     

    연습문제

    1~100까지 랜덤값을 받아 1부터 랜던값 까지의 합계

     

    public void method1() {
    		
    		
    		
    		 
    		Scanner sc  = new Scanner(System.in);
    		int randomNum = (int) (Math.random() * 100);
    		
    		int i=1;
    		int sum=0;
    		
    		System.out.println(randomNum);
    		while (i <= randomNum) {
    			
    			
    			
    			sum+=i;
    			i++;
    		}
    		System.out.println(sum);
    		
    	}
    }

     

     

    ▶while문 무한 반복

    public void method2() {
    		
    		while(true) {
    			System.out.println("ㅎㅇㅎㅇㅎㅇㅎㅇㅎㅇ");
    		}
    	}

    조건식에 true를 넣으면 무한반복 된다.

     > 무한 반복을 돌리려면 for문 보다는 while문을 더 많이 쓴다.

     

     

     

     

    무한 반복 종료

    public void method3() {
    		
    		Scanner sc = new Scanner(System.in);
    		
    		
    		while(true) {
    			
    			System.out.println("프로그램을 종료하시겠습니까?");
    			String answer = sc.nextLine();
    			
    			if(answer.equals("y")||answer.equals("Y")) {
    				System.out.println("종료되었습니다.");
    				return;
    			}
    			
    			
    		}
    	}

    y가 나올때 까지 반복되다가. y를 입력받으면 종료되는것을 볼 수 있다.

     

    ▶Do-While문

      

      >do 안의 내용 먼저 " 한번 "  실행.

         -->조건식 확인 후 true면 문장 수행, false면 종료, 

         -->while 뒤에 ; 꼭 필요함.

     

    (즉, do-while문은 조건 검사 결과에 상관 없이 무조건 맨 처음에는 1번 실행함)

      >반복 횟수가 내가 의도한 것 보다 한번 더 돈다. -> 그래서 굳이 잘 안쓰임!!

     

     

    while 문 : 처음 수행할 때도 조건검사 후에 반복이 진행.

    do-while문 : 처음 수행할 때는 조건검사 없이 일단 실행 후 반복이 진행(반복횟수 +1)

     

     

    public void method4() {
    		
    		int num =1;
    		do {
    		
    			System.out.println("안녕");
    			
    		}while(num==0);
    		
    		
    		
    	}
    }

     

     

    일단 한번 실행되고,

    조건문이 0 이기 때문에(false) 종료됨.

     

    일단 한번은 실행되는게 중요

     

     

     

     

    do - while문으로 

    1~5까지 돌려보자

    public void method8() {
    		
    		int i =1;
    		
    		do {
    			System.out.println(i);
    			i++;
    		}while(i<=5);
    		
    		
    	}
    }

    돌려봤다.

     

     

     

    ▶break문

      >switch문에서의 break; 와는 전혀 다른개념임!! (쓰임새가 전혀 다름)

      > 기존 switch문에서의 break; 는 switch(조건문)를 빠져나가는 역할을 했다.

      > 분기문으로써의 break; 는 "가장 가까운 "반복문" 을 빠져나가는 역할을 한다.

      

      >이런식으로 쓰인다.

     

     

    ※자동 import : ctrl + shift + o 

     

     

    return 과 break 차이.

    public class A_break {
    
    	public void method1() {
    		
    		Scanner sc = new Scanner(System.in);
    		
    		while(true) {
    			System.out.println("프로그램을 종료하시겠습니까?");
    			String answer = sc.nextLine();
    			
    			if(answer.equals("y")) {
    				
    				break; // while문만 빠져나감
    				//return; : method1을 빠져나가서 main으로 돌아감.
    			}
    		}
    		
    		System.out.println("출력");
    		//return구문을 썻을 경우 이 시점으로 절 대 올 수 없음.
    	}
    }

     

     

    	//매번 반복적으로 새로 발생되는 랜던값(1~100)출력
    		//단, 그 랜덤값이 홀수일 경우 반복문을 빠져나감.
    		
    		int random = (int)((Math.random()*100));
    		
    		System.out.println("random : " + random);
    		while(random % 2 ==1) {
    			
    			break;
    		}
    		System.out.println("반복문 종료");
    	}

     

     

     

     

    사용자에게 양수를 입력받아 1~ 사용자가 입력한 수 까지 출력

    public void method3() {
    		
    		//매번 반복적으로 사용자에게 양수를 입력받아 1~ 사용자가 입력한 수 까지 출력
    		
    		Scanner sc = new Scanner(System.in);
    		
    		while(true) {
    			
    			System.out.println("양수 입력 : ");
    			int num = sc.nextInt();
    			sc.nextLine();
    			
    			if(num>0) {
    				//case1) 제대로된 양수를 입력한 경우 > 출력 후 반복문을 빠져나가기(break)
    				for(int i=1; i<=num; i++) {
    					
    					System.out.println(i+ " ");
    					
    					
    				}
    				
    				
    				
    			}else {
    				//case2) 잘못 입력했을경우 >while(true) 로 그대로 다시 입력받도록 올라가게끔
    			}
    		}

     

     

     

     

     

    문자열의 길이 출력

    public void method4() {
    		//매번 사용자에게 문자열을 입력받은 후 해당 문자열의 길이 출력.
    		//단, 사용자가 "exit" 를 입력했을 경우에는 프로그램 종료
    		
    		Scanner sc = new Scanner(System.in);
    		
    		while(true) {
    			System.out.print("문자열 입력 : ");
    			String str = sc.nextLine();
    			
    			System.out.println(str + " 의 글자수 길이 : " + str.length());
    			System.out.println();
    			if(str.equals("exit")) {
    			
    				
    				break;
    			}
    			
    		}
    		System.out.println("종료");
    		
    	}
    }

     

     

    ▶Continue문

     > "반복문" 안에서 사용하는 구문.

     > continue; 를 만나는 순간 그 뒤에 어느 구문이 있던지 간에 실행하지 않고  " 가장 가까운 상단 " 으로 올라감.

     

     > 반복문 내에서만 사용 가능하며

        반복문 실행시 continue 아래 부분은 실행하지 않고 반복문 다시 실행함. 

        for 문의 경우 증감식으로 이동, while문의 경우 조건식으로 이동

        -->    전체 반복 중에 특정 조건을 만족하는 경우를 제외하고자 할 때 유용하다.

     

    1부터 10까지 홀수만 출력해보자.

     

    public void method1() {
    
    		// 1부터 10까지 홀수만을 출력
    		// "1 3 5 7 9"
    
    		// 방법1
    		for (int i = 0; i <= 10; i++) {
    
    			if (i % 2 == 1) {
    
    				System.out.print(i);
    
    			}
    		}
    
    		//방법2
    		for(int i=1; i<=10; i+=2) {
    			
    			System.out.print(i+" ");
    		}
    		
    		//방법3 : continue문 이용
    		for(int i=1; i<=10; i++) {
    			
    			if(i%2 ==0) {
    				continue; // i가 짝수일 경우, 실행하지 않고, 다음증감식으로 넘어가라
    				
    				
    			}
    		}

    이렇게 쓸 수 있다.

     

     

     

    연습 -->구구단을 모두 출력, 4의 배수단은 제외하고 출력(4,8단)

    public void method2() {
    
    		// 구구단을 모두 출력, 4의 배수단은 제외하고 출력(4,8단)
    
    		for (int i = 2; i <= 9; i++) {
    
    			if (i % 4 == 0) {
    				continue;
    
    			}
    			System.out.println("-----" + i + "단 -----");
    			for (int j = 1; j <= 9; j++) {
    				System.out.println(i + "x" + j + "=" + (i * j));
    
    			}
    		}
    
    	}

    4단과 8단을 건너뛰고 출력된다.

     

     

     

     

     

    public void method3() {
    		
    		//1부터 100까지의 총 합계
    		//단, 6의 배수값은 제외하고.
    		int sum=0;
    		for(int i=0; i<101; i++) {
    			if(i%6==0) {
    				continue;
    			}
    			sum+=i;
    			
    		}
    		System.out.println(sum);
    		
    		
    		
    		
    		
    		
    	}

    연습 --> 1부터 100까지의 총 합계, 6의 배수값 제외한.

     

    '개발 > 자바JAVA' 카테고리의 다른 글

    배열 복사  (0) 2024.01.24
    배열  (1) 2024.01.23
    반복문(for문, while문)  (0) 2024.01.22
    제어문 > 조건문(if, switch문)  (0) 2024.01.19
    연산자  (1) 2024.01.18
Designed by Tistory.