ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 반복문(for문, while문)
    개발/자바JAVA 2024. 1. 22. 17:37

    ▶반복문

      > 프로그램 수행 흐름을 바꾸는 역할을 함, 특정 문장들을 반복해서 수행하도록 함.

      > [종류] : for문, while문, do-while문

      > for문 : 반복 횟수를 정확하게 알고 있을때 사용한다!!

      > while문 : 반복 횟수를 정확하게 모를때 사용.

      > do-while문 : 반복 횟수를 정확하게 모를때 사용.  

     

     

     

    ▶for문

     

     > 초기식, 조건식, 증감식으로 이루어져 있고, 각각 세미콜론(마침표) 로 구분되어 있다.

     

     > 초기식 : 반복문이 시작될 때 초기에 "단 한번만" 실행. (변수 선언 및 초기화) (int i =0; )

     > 조건식 : 반복문이 수행될 조건을 작성하는 구문, 

                      - 1회전 : 초기식 확인 후 조건식 확인 -> 조건식이 true면 문장 수행, false면 수행하지 않음.

                      - 2회전 : 증감식 연산 후 조건식 확인 -> 조건식이 true면 문장 수행, false면 수행하지 않음.

                      (보통 초기식에서 세팅한 변수를 가지고 조건식을 작성함.) (i<10;)

     

     > 증감식 : 반복문을 제어하는 변수값을 증감 시키는 구문 (초기식에서 세팅한 변수를 가지고 증감식을 작성함)(i++)

     

     > 조건식이 false가 나올때 까지 문장 수행.

     

    흐름 다시 한 번 정리.

    초기식 --> 조건식(조건검사) --> true일 경우 실행  -> 코드 실행하고 증감식으로 이동 --> 조건식(조건검사) -->true일경우... --> 조건식(조건검사) --> false일 경우 for문 종료.

     

     

    이런식으로 i가 0부터 시작해서 5가 되기전까지 5번 반복한다.

     

    i가 0부터 시작할 필요는 없다.\

     

    증감식이 1씩 증가할 필요도 없다!!

     

    부등호의 방향이 같을 필요도 없고, 감소도 가능함!

     

     

     

     

     

     

    ●일부러 무한반복을 돌리고 싶을때

    조건식을 true로 하면 됨!

     

    이렇게도 된다!

     

    얘도됨;;;!!!!

     

    ※참고로 if문에서도 의도적으로 실행시키려면

    if(true){

    } 이렇게 해도 된다.

     

     

    ●연습문제

    1.

     

    1부터 사용자가 입력한 정수까지의 총 합을 구해서 출력하기

    public void method9() {
    		
    		//1부터 사용자가 입력한 정수까지의 총 합을 구해서 출력하기
    		Scanner sc = new Scanner(System.in);
    		System.out.println("숫자를 입력하세요 :");
    		int num = sc.nextInt();
    		sc.nextLine();	
    		
    		int sum=0;
    		for (int i = 1; i <= num; i++) {
    			
    			sum += i;
    			
    		}
    		System.out.println(sum);
    
    	}
    }

     

    2.

    랜덤 메소드를 이용해서 

    1부터 랜던값(1~100사이 랜덤한 정수) 까지의 총 합계

     

    public void method10() {
    		
    		
    		
    		//1에서부터 매번 달라지는 랜덤값(1~10 사이의 랜덤한 정수) 까지의 총 합계
    		Scanner sc = new Scanner(System.in);
    		int randomNum = (int)(Math.random()*100); //100까지 랜덤
    		
    		System.out.println("랜덤 수 : " + randomNum);
    		int sum=0; 
    		for(int i =0; i<= randomNum; i++) {
    			sum += i;
    			
    		}
    		System.out.println("1부터 랜덤 수 까지의 합계" + sum);
    				
    		
    
    		
    		
    		
    		
    		
    	}
    }

     

     

     

      ※랜덤 메소드

     

    int random = (int)(Math.random() * 랜덤값 범위) + 시작 수);

     

    ex) 11~20 사이의 랜덤한 정수값??

    int random = (int)((Math.random()*10) +11);

     

     

    3. 입력한 숫자까지 곱 구하기

    public void method11() {
    		
    		Scanner sc = new Scanner(System.in);
    		System.out.println("숫자를 입력하세요 : ");
    		int num = sc.nextInt();
    		sc.nextLine();
    		
    		int x=1;
    		for(int i =1; i<=num; i++) {
    			
    			x *= i;
    		}
    		System.out.println("1~10까지의 곱 : " + x);
    	}
    }

     

     

     

     

     

    4. 2~9단까지 구구단 만들기.

     

    	public void method12() {
    		
    		//사용자로부터 2~9 사이의 정수를 입력받아 해당 구구단을 출력
    		
    		Scanner sc = new Scanner(System.in);
    		System.out.print("구구단 2~9단중 입력하세요 : ");
    		int num = sc.nextInt();
    		sc.nextLine();
    		
    		
    		System.out.println(num + "단 입니다.");
    		for(int i=1; i<=9; i++) {
    			
    			System.out.println(num + "x" + i + "=" + (num*i));
    		}
    		
    		
    			
    	}

     

    ●중첩for문(이중for문)

    예시 1

     

     

     

     

    예시2

     

     

    예시3

    1***

    *2**

    **3*

    ***4  를 찍어보자

     

    패턴 파악이 중요...

    행과, 열이 일치할때 숫자가 나온다.

    i==j 일때 숫자를 찍는 것이 중요!!

    public void method15() {
    
    		for (int i = 1; i < 5; i++) {
    			for (int j = 1; j < 5; j++) {
    				if (i == j) {
    
    					System.out.print(i);
    				} else {
    					System.out.print("*");
    				}
    			}
    			System.out.println();
    		}
    	}

     

     

     


    예시5

    *

    **

    ***

    ****

    *****

    public void method16() {
    
    		for (int i = 1; i < 6; i++) {
    			for (int j = 1; j<=i ; j++) {
    				System.out.print("*");
    				
    				}
    			System.out.println();
    			}
    		
    		}

     

     

    예시6

    *****

    ****

    ***

    **

    *

    public void method17() {
    		for (int i = 1; i < 6; i++) {
    			for (int j = 5; j >= i; j--) {
    				System.out.print("*");
    
    			}
    			System.out.println();
    		}
    
    	}

     

     

     

    예시 7 

    구구단 전체

    public void method18() {
    		
    		for(int i=1; i<=9; i++) {
    			System.out.println(i+"단");
    			for(int j =1; j<=9; j++) {
    				
    				System.out.println(i+"x"+j+"="+(i*j));
    			}
    		}
    	}

     

    예시 8 

    	public void method21() {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("영문 문자열을 입력하세요 : ");
    		String e = sc.nextLine();
    		
    		for(int i=0; i<e.length(); i++) {
    			
    			
    				System.out.println((i+1) +"번째 글자 : " + e.charAt(i));	
    		
    			
    		}
    		System.out.println();
    	}

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

    배열  (1) 2024.01.23
    반복문(while문), break문, continue문  (0) 2024.01.23
    제어문 > 조건문(if, switch문)  (0) 2024.01.19
    연산자  (1) 2024.01.18
    출력메소드(printf)  (0) 2024.01.18
Designed by Tistory.