ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 210415_3~6(중첩반복문,outer,continue,별만들기연습)
    JAVA(Sol)(정리대기중..언젠가) 2021. 4. 15. 12:57

    중첩반복문

     

      for(바깥조건 4번) {

           실행문1;            ====> 4번

           for(안쪽조건 5번){

                실행문2;       ====> 20번 ( 4*5 =20 /바깥이 한번실행되면 안쪽 5회 실행된다 )

            }

           실행문3;            ====> 4번

     }

          실행문4;             ====> 1번 (반복문 바깥에 있기때문)

    package chapter5;
    
    public class Break {
    
    	public static void main(String[] args) {
    		for (int i=0; i<=2; i++) {      // 0, 1, 2
    			for(int j=2; j>=0; j--){    // 2, 1, 0
    				if(i==j)break;
    				System.out.println("i=="+ i + "j==" + j);
    		}  //inner
    	}  //out
      }  //main
    }  //class

    i가 한번돌때  j가세번(j=2,1,0)돌고 그동안에 같은값을 만나면 빠져나오고 

    그 i가 세번(i=0,1,2)도는것

     

    증   감

    i   |   j

    0  |  2  1  0

    1  |   2  1  0

    2  |   2   1   0

    ---------------------

    0 2 / 0  1 / 0  0

    1 2 / 1  1 / 1  0

    2 2 / 2  1 / 2  0

    break; 기본적으로 블럭을 하나만 빠져나갈 수 있다.

     


    outer

    package chapter5;
    
    public class ForTest2 {
    
    	public static void main(String[] args) {
    		outer: for(int i=0; i<=2; i++) {
    			for(int j=2; j>=0; j--) {
    				if(i==j) break outer;
    				System.out.println("i=="+ i + "j==" + j);
    			} //for
    		}  //outfor
    	} // main
    } // class
    

     

    출력값: i==0j==2
              i==0j==1

    i==0가 j==0을 만나는순간 for문자체를 빠져나가서 이후의 실행을안함

     

      라벨(키워드:) <===특정 지점(영역)을 표시

             outer:

    break 키워드; 키워드 지점까지 빠져나감, 여러개의 블럭에서 빠져나갈수있다.


    continue 

    : continue 다음에 오는 명령문을 건너뛴다.

    package chapter5;
    
    public class Continue {
    
    	public static void main(String[] args) {
    
    		for(int i=0; i<=2; i++){
    			for(int j=0; j<=2; j++) {
    				if(i==j) continue;
    				System.out.println("i==" + i + "j==" + j);
    			} //in for
    		} // out for
    	} // main
    } // class
    
    //콘솔출력
    //i==0j==1
    //i==0j==2
    //i==1j==0
    //i==1j==2
    //i==2j==0
    //i==2j==1

    i와j에 동일한 수가 만난순간만 건너뛰고 쭉실행


    구구단

    package chapter5;
    
    public class Gugudan {
    
    	public static void main(String[] args) {
    		for(int i=1; i<=9; i+=3) {
    			System.out.println(" " + i + "단\t\t" + (i+1) + "단\t\t" + (i+2) + "단");
    			System.out.println("-------------------------------------------");
    			for(int j=1; j<=9; j++) {
    				System.out.print(i+ " * " + j + " = " + i*j + "\t");
    				System.out.print((1+i)+ " * " + j + " = " + (i+1)*j + " \t" );
    				System.out.print((i+2) + " * " + j + " = " + (i+2)*j);
    				System.out.println("");
    			}
    			System.out.println("");
    		}
    
    	}
    
    }
    

    구구단출력결과

    WOW

     


    별만들기연습

     

    조건 : 별은 1개만 사용한다.

     

    package chapter5;
    
    public class For {
    
    	public static void main(String[] args) {
    		for(int i=1; i<=5; i++) {   //1  단일반복분,별 1개
    			System.out.println("★");  // 비교 print()
    		}
    System.out.println("-------------------");
    		
    		for(int i=1; i<=5; i++) {  //2 단일반복분, 별 1개
    			System.out.print("★");
    		}
    		System.out.println();
    System.out.println("-------------------");
    		
    		for(int i=1; i<=5; i++) {   // 3이중반복문, 별1개
    			for(int j=1; j<=5; j++){
    				System.out.print("★"); //별 5개놓기
    			}
    				System.out.println(""); //줄바꿈 x5
    		}
    System.out.println("-------------------");
    		
    		for(int i=1; i<=5; i++) {   // 4이중반복문, 별1개
    			
    			// 안쪽이 1에서 5로 증가하는 변수가 와야한다.===> i
    			for(int j=1; j<=i; j++){
    				System.out.print("★");
    			}
    				System.out.println("");
    		}
    
    System.out.println("-------------------");
    		
    		for(int i=5; i>=1; i--) {   // 5이중반복문, 별1개
    
    				//안쪽의 범위는 5에서 1로 줄어드는 변수가 와야한다. ===>i
    			for(int j=1; j<=i; j++){
    				System.out.print("★");
    			}
    				System.out.println("");
    		}
    
    System.out.println("-------------------");
    		
    		for(int i=1; i<=5; i++) {   // 6이중반복문, 별1개, 조건문, ☆넣어서
    				for(int j=1; j<=5; j++){
    					if(j >=i ) {
    					System.out.print("★");
    				}else {
    					System.out.print("☆");
    				}
    
    			}
    				System.out.println("");
    			}
    		
    System.out.println("-------------------");
    		
    		for(int i=5; i>=1; i--) {   // 7이중반복문, 별1개, 조건문 ,☆넣어서
    				for(int j=1; j<=5; j++){
    					if( i <= j ) {
    					System.out.print("★");
    				}else {
    					System.out.print("☆");
    				}
    
    			}
    				System.out.println("");
    			}
    	
    	
    	}
    
    	}

     

     6번예제)

    i    j <=========검정 별이 되는 i와 j의 관계? 증가하는 i가 j보다 크거나 같으면 검정별

    1   12345

    2   12345

    3   12345

    4   12345

    5   12345

     

    7번예제)

     i    j <=========== i<=j // j가 i보다 크거나 같으면

    5   12345

    4   12345

    3   12345

    2   12345

    1   12345

     

    결과값

     

    재미는있는데

    어렵다..

Designed by Tistory.