4장. 조건문과 반복
조건문
: 조건을 만족할 때만 { } 를 실행
if ( 조건식 ) {
내용
}
※ 조건식에는 true or false 가 와야함
조건문과 반복문을 flow control statment (제어문) 이라고도함.
조건식 예시)
if ( 조건식 ) {
내용
}
에서
{ } 생략 가능하다. 생략시, 한 행만 조건문으로 인식
if ( 조건식 )
내용1 ( if에 속한문장)
내용3 ( if에 속한 문장 아님 )
if ( 조건식 ) {
조건식 참일때 실행할 내용
} else {
조건식 거짓일때 실행할 내용
}
else if
if ( 조건식 ) {
조건식 참일때 실행할 내용
} else if (조건식2) {
조건식2가 참일때 실행할 내용
} else if (조건식3)
조건식3이 참일때 실행할 내용
} else {
조건식 거짓일때 실행할 내용
}
중첩 if문
switch문
: 처리해야 하는 경우의 수가 많을때 유용한 조건문
예시)
switch ( 조건식) {
case 값 1 :
조건식의 결과가 값1 일때 실행될 내용
break;
case 값 2 :
조건식의 결과가 값1 일때 실행될 내용
break;
case 값 3 :
조건식의 결과가 값1 일때 실행될 내용
break;
case 값 4 :
조건식의 결과가 값1 일때 실행될 내용
break;
default(생략가능) :
조건식의 결과가 case값들과 일치되는게 없을때 실행될 내용
}
※ 주의 : break문이 없다면 case 1,2,3,4 그냥 다 실행함
switch문의 제약 조건
1. 조건식의 결과는 정수 or 문자열 이어야한다. (jdk 1.7 이상부터 문자열까지가능)
2. case값은 정수, 상수, 문자열만 가능하며 중복되지 않아야한다. ( 변수 x )
case 3 의 실행내용은 없다.
그래서 case4 , case5 까지 쭈욱 실행되며,
case 5의 봄입니다를 출력후, break문을 만나 switch문 종료case 3 의 실행내용은 없다.
그래서 case4 , case5 까지 쭈욱 실행되며,
case 5의 봄입니다를 출력후, break문을 만나 switch문 종료
임의의 정수만들기 - Math.random()
: 0.0과 1.0 사이의 임의의 double 값을 반환
0.0 <= Math.random() < 1.0
예시)
1~ 3사이의 정수를 얻고 싶다면,
1. 각변의 3을 곱한다. ( 내가 원하는 개별 값의 개수를 곱하는 것 )
2. 각변을 int형으로 변환한다.
3. 각변의 1을 더한다..
예시2)
반복문
: 조건을 만족하는 동안 { } 를 n번실행
for, while
for문이란?
: 조건을 만족하는 동안 { } 블럭 내용을 반복 ( 반복회수를 알 때 적합 )
예시)
누적합계
중첩 for
예시 ) 구구단 출력
먼저 반복문 1행 만들고 다음꺼 넘어가는게 좋았음
break문이란?
: 자신이 포함된 하나의 반복문을 벗어남.
int sum=0, i=0;
while(true){
if(sum > 100){
break; // if조건이 만족되면 break;문이 실행되어 반복문을 종료시킴
}
i++;
sum += i;
System.out.println("i : " + i + " , sum : " + sum );
}
예시)
continue문이란 ?
: 자신이 포함된 반복문의 끝으로 이동 ( 다음 반복으로 넘어감 )
예시)
※ break문은 하나의 반복문을 벗어난다.
그런데 , 중첩 반복문을 벗어나야 할 경우는 ???
이름붙은 반복문을 활용
: 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다.
일반 break;를 사용시에는 전체 반복문을 빠져나올수 없다.
반복문에 이름을 붙여 break시 반복문 전체를 빠져나올수있다.
출처 : 남궁성의 정석코딩