独身者-04.条件文と重複文


独身者-04.条件文と重複文
条件文:if文、switch文
ドアが
文が条件式の結果によってブロックを実行するかどうかを決定する場合、条件式は演算子であってもよいし、trueまたはfalse値を計算するためにブール型変数であってもよい.
条件文がtrueの場合、if文内の実行文を実行し、falseの場合、if文以外の実行文を実行します.
package sec01.exam01;

public class IfExample {

	public static void main(String[] args) {
		int score = 93;
		
		if(score>=90) {
			System.out.println("점수가 90보다 큽니다.");
			System.out.println("등급은 A입니다.");
		}
		
		if (score<90) {
			System.out.println("점수가 90보다 작습니다.");
			System.out.println("등급은 B입니다.");
		}
	}

} // 점수가 90보다 큽니다. 등급은 A 입니다. 출력
if-else文
条件式がtrueの場合、if文内で実行文を実行し、if文外で実行文を実行します.
条件式がfalseの場合、else if文で実行文を実行し、else if文の外で実行文を実行します.
package sec01.exam02;

public class IfElseExample {

	public static void main(String[] args) {
		int score = 85;
		
		if(score>=90) {
			System.out.println("점수가 90보다 큽니다.");
			System.out.println("등급은 A입니다.");
		} else {
			System.out.println("점수가 90보다 작습니다.");
			System.out.println("등급은 B입니다.");
		}
	}

} // 점수가 90보다 작습니다. 등급은 B입니다. 출력
if-else if-else文
条件文がtrueの場合if文で実行文を実行
条件文がtrueの場合、else if文で実行文を実行します.
以上の条件が一致しない場合はelse文で実行文を実行します.
package sec01.exam03;

public class IfElseIfElseExample {

	public static void main(String[] args) {
		int score = 75;
		
		if(score>=90) {
			System.out.println("점수가 100~90 입니다.");
			System.out.println("등급은 A 입니다.");
		} else if (score>=80) {
			System.out.println("점수가 80~89 입니다.");
			System.out.println("등급은 B 입니다.");
		} else if (score>=70) {
			System.out.println("점수가 70~79 입니다.");
			System.out.println("등급은 C 입니다.");
		} else {
			System.out.println("점수가 70 미만입니다.");
			System.out.println("등급은 D 입니다.");
		}
	}

} // 점수가 70~79 입니다. 등급은 C 입니다.
package sec01.exam04;

public class IfDiceExample {

	public static void main(String[] args) {
		int num = (int) (Math.random() * 6) + 1;
		// Math.random
		
		if (num==1) {
			System.out.println("1번이 나왔습니다.");
		} else if (num==2) {
			System.out.println("2번이 나왔습니다.");
		} else if (num==3) {
			System.out.println("3번이 나왔습니다.");
		} else if (num==4) {
			System.out.println("4번이 나왔습니다.");
		} else if (num==5) {
			System.out.println("5번이 나왔습니다.");
		} else {
			System.out.println("6번이 나왔습니다.");
		}
	}

} // 1-6 중에 랜덤인 숫자가 나와서 결과가 출력된다.
スイッチドア
switch文は変数の値に基づいて実行されます.
package sec01.exam05;

public class SwitchExample {

	public static void main(String[] args) {
		int num = (int) (Math.random()*6)+1;
		
		switch(num) {
		case 1:
			System.out.println("1번이 나왔습니다.");
			break; // 다음 case를 실행하지 않고 switch문을 빠져나가기 위해서 작성
		case 2:
		System.out.println("2번이 나왔습니다.");
		break;
		case 3:
			System.out.println("3번이 나왔습니다.");
			break;
		case 4:
			System.out.println("4번이 나왔습니다.");
			break;
		case 5:
			System.out.println("5번이 나왔습니다.");
			break;
		default:
			System.out.println("6번이 나왔습니다.");
			break;
		}
	}

}
  • ブレークポイントがない場合は
  • package sec01.exam06;
    
    public class SwitchNoBreakCaseExample {
    
    	public static void main(String[] args) {
    		int time = (int) (Math.random()*4)+8;
    		System.out.println("[현재 시각 : " + time + "시]");
    		
    		switch (time) {
    		case 8:
    			System.out.println("출근합니다.");
    		case 9:
    			System.out.println("회의를 합니다.");
    		case 10:
    			System.out.println("업무를 봅니다.");
    		default:
    			System.out.println("외근을 나갑니다.");
    		}
    	}
    
    } // break를 적지 않아 다음 case를 모두 실행하고 switch문을 빠져나온다.
  • 文字タイプのスイッチドア
  • package sec01.exam07;
    
    public class SwitchCharExample {
    
    	public static void main(String[] args) {
    		char grade = 'B';
    		
    		// 대소문자와 상관없이 결과 출력
    		switch(grade) {
    		case 'A':
    		case 'a':
    			System.out.println("우수 회원입니다.");
    			break;
    		case 'B':
    		case 'b':
    			System.out.println("일반 회원입니다.");
    			break;
    		case 'C':
    		case 'c':
    			System.out.println("손님입니다.");
    			break;
    		}
    	}
    
    } // 일반회원입니다. 출력
  • Stringタイプのスイッチゲート
  • package sec01.exam08;
    
    public class SwitchStringExample {
    
    	public static void main(String[] args) {
    		String position = "과장";
    		
    		switch(position) {
    		case "부장":
    			System.out.println("700만원");
    			break;
    		case "과장":
    			System.out.println("500만원");
    			break;
    		default:
    			System.out.println("300만원");
    			break;
    		}
    	}
    
    } // 500만원, 출력
    繰り返し文:for文、while文、do-while文
    文脈
  • for文の最初の実行時に初期化式が最初に実行されます.
  • 条件式を評価し、trueの場合、foransブロック内の実行文を実行し、falseの場合、for文ブロックを実行せずに終了します.
  • ブロックのすべての実行文が実行されると、インクリメンタルが実行され、条件式が再評価される.
  • 条件式の評価結果がtrueであれば、実行式、増減式、条件式で再実行し、falseであればfor文は終了する.
  • package sec02.exam01;
    
    public class ForPrintFrom1To10Example {
    
    	public static void main(String[] args) {
    		
    		//1-10을 출력하는 반복문
    		for(int i=1; i<=10; i++) {
    			System.out.println(i);
    		}
    	}
    
    }
    package sec02.exam02;
    
    public class ForSumFrom1To100Example1 {
    
    	public static void main(String[] args) {
    		int sum = 0;
    		
    		for(int i=1; i<=100; i++) {
    			sum +=i;
    		}
    		
    		System.out.println("1~100 합: " + sum);
    	}
    
    }
    package sec02.exam03;
    
    public class ForSumFrom1To100Example2 {
    
    	public static void main(String[] args) {
    		int sum = 0;
    		int i = 0;
    		
    		for(i=1; i<=100; i++) {
    			sum+=i;
    		}
    		
    		System.out.println("1~" + (i-1) + "합:" + sum); // i를 for문 밖에서 선언했기때문에 여기서도 호출 가능
    	}
    
    } // for문을 작성할 때 주의할 점은 초기화식에서 루프 카운터 변수를 선언할 때 부동 소수점을 쓰는 float 타입을 사용하지 말아야한다.
    オーバーラップ
    package sec02.exam05;
    
    public class ForMultiplicationTableExample {
    
    	public static void main(String[] args) {
    		for (int m=2; m<=9; m++) {
    			System.out.println("*** " + m + "단 ***");
    			for (int n=1; n<=9; n++) {
    				System.out.println(m + " x " + n + " = " + (m*n));
    			}
    		}
    	}
    
    }
    ドア
    条件式がtrueの場合、繰り返します.
  • while文の最初の実行時評価条件式.
  • 評価結果がtrueの場合、文が実行されます.
  • 文を実行した後、条件式を返し、条件式を再評価します.
  • 条件式がtrueの場合、文、条件式が再実行されます.
  • 条件式がfalseの場合、while文を終了します.
    package sec02.exam06;
    
    public class WhilePrintFrom1To10Example {
    
    	public static void main(String[] args) {
    		int i = 1;
    		while(i<=10) {
    			System.out.println(i);
    			i++;
    		}
    	}
    
    }
    package sec02.exam07;
    
    public class WhileSumFrom1To100Example {
    
    	public static void main(String[] args) {
    		int sum = 0; // while문 시작하기 전에 선언해 놓아야함.
    		int i = 1;
    		
    		while(i<=100) {
    			sum += i;
    			i++;
    		}
    		
    		System.out.println("1~" + (i-1) + "합 : " + sum);
    	}
    
    }
    do-while文
  • do-while文を最初に実行するときに文を優先します.
  • 文を実行すると、条件式が評価されます.
  • 条件式の結果がtrueの場合、文や条件式の実行など、繰り返し実行されます.
  • 条件式の結果がflaseの場合、do-while文を終了します.
  • ドアを破る
    break文は、重複文for文、while文、do-while文、switch文の実行を停止するために使用されます.
    package sec02.exam08;
    
    public class BreakExample {
    
    	public static void main(String[] args) {
    		while(true) {
    			int num = (int) (Math.random()*6)+1;
    			System.out.println(num);
    			if (num==6) {
    				break;
    			}
    		}
    		System.out.println("프로그램 종료");
    	}
    
    }
    break文は、最近の重複文のみを終了します.外の複文に名前のラベル、breakの名前を貼ります.使用すれば、外部の複文も終了できます.
    package sec02.exam09;
    
    public class BreakOuteerExample {
    
    	public static void main(String[] args) {
    		Outter: for (char upper='A'; upper<='Z'; upper++) {
    			for (char lower='a'; lower<='z'; lower++) {
    				System.out.println(upper + "-" + lower);
    				if(lower=='g') {
    					break Outter;
    				}
    			}
    		}
    	System.out.println("프로그램 실행 종료");
    	}
    
    }
    れんぞく文
    ブロックでcontinue文を実行すると、continue文はfor文の条件式またはwhile文、do-while文に移動します.
    package sec02.exam10;
    
    public class ContinueExample {
    
    	public static void main(String[] args) {
    		for (int i=1; i<=10; i++) {
    			if (i%2 != 0) {
    				continue;
    			}
    			System.out.println(i);
    		}
    	}
    
    }