[07]JAVA Nam GungSung Class(11 18) chapter 4 조건문과 반복문 - Jo-Jun-Yeong/NamGungSung-class GitHub Wiki
ch4-0
조건문과 반복문
조건문(if, switch) : 조건을 만족할 때만 {}를 수행(01번)n번)
반복문(for, while) : 조건을 만족하는 동안 {} 를 수행(0
이를 제어문(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문의 제약조건
- switch문의 조건식 결과는 정수 or 문자열 이어야 한다,
- 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의 반복문을 벗어
}