[07]JAVA Nam GungSung Class(11 18) chapter 4 조건문과 반복문 - Jo-Jun-Yeong/NamGungSung-class GitHub Wiki

ch4-0
조건문과 반복문
조건문(if, switch) : 조건을 만족할 때만 {}를 수행(01번)
반복문(for, while) : 조건을 만족하는 동안 {} 를 수행(0
n번)
이를 제어문(flow control statement)라고 한다


ch4-1 if문 조건식이 참(true)일때, 괄호{} 안의 문장들을 수행한다. if(조건식){ //조건식이 true일때 수행될 문 }//끝


ch4-2 조건식의 다양한 예
정수가x가 90이상

정수가x가 0보다 작거나 100보다 클때

정수가x가 3의 배수지만 2의 배수는 아닐때

문자가ch가 'y' 또는 'Y'일때

문자ch가 공백이거나 탭 또는 기행문자일때
*공백(ch==' ')
*탭(ch=='\t')
*기행문자(ch=='\n')

문자ch가 대문자일때

문자ch가 소문자일대

문자ch가 숫자일때

문자열str의 내용이 "yes"일때 (대문자구분) str.equals("yes")

문자열str의 내용이 "yes"일때 (대문자구분안함) str.equalsIgnoreCase("yes")


ch4-3블럭{}
여러문장을 하나로 묶어주는것
*if문의 첫번째는 {}를 생략할 수 있다.


ch4-4 if-else문
둘중 하나 - 조건식이 참일떄와 거짓일때로 나눠서 처리

	if(조건식){
		//참일
	}//끝
	else {
		/거짓일
	}

ch4-5 if-else if문
여러개의 조건중 하나 - 여러개의 조건식을 포함한 조건식

	if(조건식){
		//조건식의 연산결과1
	}//끝
	if else {
		//조건식의 연산결과2
	}
	if else {
		//조건식의 연산결과3
	}
	if else {
		//조건식의 연산결과4
	}
	else { *else블럭은 생략 가능
		/거짓일
	}
            참인 조건만 실행 후 빠져나간다

ch4-9 switch문 <==> if-else if
처리해야 하는 경우의 수가 많을 떄 우용한 조건문
switch{ case값 1: //

		break;
	case값 2:
		//
		
		break;
	default;
	//조건식의 결과와 일치하는 case문이 없을 떄 수행 될 문장들
	}

조건식에 맞는 case값에 이동 후 case'n'에 해당하는 문장을 수행
break문이나 swich문 끝을 만나면 swich문을 빠져나간다.


ch4-10 switch문의 제약조건

  1. switch문의 조건식 결과는 정수 or 문자열 이어야 한다,
  2. case문의 값은 정수 상수(문자포함), 문자열만 가능, 중복x, 변수x
    ex) int num, result; final int ONE=1; switch(result) { case '1': // of case ONE : //ok case "YES" : //ok case num : // 변수x case 1.0: // 실수x }

ch4-12 임의의 정수, 실수 만들기 -> 난수 만들기
Math.random() -0.0꽈 1.0사이의 임의의 double값을 반환 0.0<=Math.random()<1.0 ///0.0~0.999....

	ex) // 1~3사이의 정수를 원한다.
	1 <=(int)(Math.random(1x3)+1)<4                       
	
	for(int=I=1; I<=20; i++{
	System.out.println(Math.random()) // 0.0<=Math.random<1.0;
	}

ch4-13 for문
조건을 만족하는 동안 {}을 반보 - 반복횟수를 알 때 적합하다

	ex)for(int i =1(1부터); i<=5(5까지); i++(1씩증가)) {
		System.out.println("A");
	}
	
	for(초기화(1); 조건식(2); 증감식(4)){
	수행 될 문장(조건식이 참이면)(3)
	}

*for문에서 선언한 값은 for문 앞에서만 (;ture;) for(;;){ -> 조건식을 생략하면 true로 간주되어 무한반복됨 }


ch4-15 중첩 for문 for문 안의 for문
ex)구구단 for문 for(int i = 2; i<9; i++) { for(int j = 1; j < 9; j++) { System.out.println(i+""+j+"="+ij); } }


ch4-16 while문 조건을 만족시키는 동안 블력{}을 반복-반복횟수를 모를때 유용하다
while(조건식) { //조건식의 연사결과가 (true)인 동안, 반복될 문 } for<->while문은 항상 바꿀수 있다

            *ex)입력받은 숫자들을 모두 더하기      
	Scanner scanner = new scanner(Sytem.in);	// Scanner로 입력 선언
	String tmp = scanner.nextLine();	//tmp로 문자열 입력받음
	num = Integer.parseInt(tmp);	//num으로tmp로 받은 문자열을 정수화
	
	int num = 1234; sum=0;
	while(num>0) {
		sum +=num%10;	//sum=sum=num%10;
		num=num/10;	//입력값의 마지막자리 구하

ch4-19 do-while문
블럭을 최소한 한번 이상 반복하는 반복문 - 사용자의 입력을 받을때 유리하다
do { //조건식의 연산결과가 참일때 수행될 문장 (한번은 무조건 실행) }while(조건식);<-반드시 들어가야 한다

*ex)1~100까지의 임의의 수를 입력하여 맞추는 코드 Scanner scanner = new Scanner(System.in); int num = (int)(Math.random()*100); System.out.println(num); int q = scanner.nextInt(); System.out.println(q); do { System.out.println("맞았습니다."); break; }while(num==q);


ch4-20 break문
자신이 포함된 하나의 반복문을 벗어난다.
for() { if(조건식) {->조건식이 맞으면 반복문을 벗어난다. break; } //if문 } //for문


ch4-21 countinue문
자신이 포함된 반복문의 끝으로 이동 - 다음반복문으로 넘어간다.
전체 반복중에 특정조건시 반복을 건너뛸 때 사용된다. ex) for(int i=0; i<=10; i++) { if(i%3==0) continue; System.out.println(i); }//1~10중 3의 배수는 건너 띄어출력하였다.


ch4-23이름붙은 반복문
반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다. Loop : for(){ //Loop의 이름을 붙인 for문

	}
	break Loop //Loop의 반복문을 벗어
}