2022.12.14-3 JAVA 복습 조건문과 반복문
4. 조건문과 반복문
4.1 코드 실행 흐름제어
자바 프로그램은 main() 메소드의 시작 {}위에서 아래로 설명하는 흐름을 가지고 있다.
이러한 실행흐름의 방향을 바꿀수 있도록 하는 것이 흐름 제어문 이다.
제어문 블록이 실행 완료된 후 다시 제어문 처음으로 돌아갈지 제어문 블록을 빠져 나와 정상흐름으로 올지는 어떤 제어문을 사용하느냐에 다르다.
조건문일때는 정상흐름으로 돌아오지만 반복문의 경우 제어문 처음으로 다시 돌아가 반복실행한다. 이것을루핑이라고 한다.
4.2 if문
if > else if > else
중첩 if문
실제 프로그램에서는 여러 단계로 중첩되는 경우가 많아 코드의 실행흐름을 이해하지 못한다면
프로그램 작성은 물론이고 이미 작성된 프로그램도 분석이 어려워진다.
4.3 switch 문
switch 문은 변수의 값에 따라서 실행문이 결정되기 때문에 if문보다 코드가 간결해진다.
int num = (int)(Math.random()*6)+1;
switch(num)
{
case 1:
System.out.println("1번이 나왔습니다.");
break;
case 2: ...
case 3: ...switch문의 괄호에는 정수타입과 문자열타입 변수를 사용할 수 있다.
case 'A':이런식으로
자바 12이후부터는 switch문에서 표현식을 사용할 수 있게 되었음.
break문을 없애는 대신 화살표와 중괄호를 사용해 가독성이 좋아졌음.
중괄호 안 실행문이 한줄이면 중괄호 생략가능
default무조건 있어야함.
char grade = 'B';
switch(grade)
{
case 'A', 'a' -> {
System.out.println("우수 회원입니다.");
}
case 'B','b' -> {
System.out.println("일반 회원입니다.");
}
default -> {
System.out.println("손님입니다.");
}
}4.4 for문
반복적으로 실행해야하는 경우에 발생 for문을 사용하면 매우 조금 사용가능.
for(1초기화식; 2조건식; 3증강식){실행문} 조건이 true일경우 실행 조건식이 false경우 종료하고 정상흐름
for문안에 초기화식이 두개거나 증감식이 둘이상이 있을수 있다. 이런경우에는 , 로 구분한다.
for문 밖에서도 초기화식 변수를 사용하고 싶다면 밖에서 선언해야한다.
for문 에서 주의해야할점은 초기화식에서 부동 소수점을 쓰는 float타입을 사용하지 말아야한다.
부동소수점 방식의 float타입은 연산과정에서 정확히 0.1을 표현하지 못하기때문에 증감식에서x에 더해지는 실제값이 0.1 보다 약간 클수 있어서 제대로 풀리지않음.
for문은 또 다른 for문을 포함할 수 있는데 이것을 중첩된 for문이라고 한다.
이 경우 바깥의 for문이 한번실행할때마다 중첩된 for문은 횟수만큼 반복하고 다시 바깥for문으로 돌아간다.
4.5 while문
for문이 정해진횟수만큼 반복이라면 while문은 조건식이 true일 경우 계속해서 반복하고 false면 종료
while(1.조건식) {실행문)
4.6do-while문
do{실행문} while{조건식}
while문과 동일하지만 블록내부를 실행시키고 실행결과에 따라 반복실행할지 결정하는 경우가 있음. 선실행후 조건검사임.
4.7 break문
반복문을 종료할때 사용된다.
4.8 continue 문
반복문에서만 사용 continue문이 실행되면 for 문의 증감식 또는 while문 dowhile문의 조건식으로 바로 이동한다.
반복문을 종료하지 않고 계속 반복을 수행한다는점이 break와 차이점이 있다.
특정 조건을 만족하는 경우 continue문을 실행해서 그 이후 문장을 실행하지 않고 다음 반복으로 넘어간다