-
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 } //classi가 한번돌때 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 01 2 /
1 1 / 1 02 2 / 2 1 / 2 0break; 기본적으로 블럭을 하나만 빠져나갈 수 있다.
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==1i==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==1i와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
결과값

재미는있는데
어렵다..
'JAVA(Sol)(정리대기중..언젠가)' 카테고리의 다른 글
210415_7~210416_1~2(array,배열) (0) 2021.04.15 210415_1 (switch문, ||&&논리연산자) (복구성공) (0) 2021.04.15 210415_2~3(while, do-while, for) (0) 2021.04.15 210414_7_제어문(If조건문) (0) 2021.04.14 210414_6(비트연산자, 삼항연산자, 단항/부정연산자, 연산자우선순위) (0) 2021.04.14