제어구조
컴퓨터 프로그램은 반복을 기본으로 한다.
선택문 : if, else, else if
반복문 : while, do-while, for
분기분 : switch, case, ...
흐름제어 방법의 종류 : 제어구조, 선택구조
코드의 반복을 위한 흐름제어. 수행절차를 제어를 한다.
if
조건에 따라서 실행된다. (비교연산자 사용.)
while
조건이 변하지 않고 ture라면 계속 실행이 된다.
반복이 벗어날 수 있는 명령어 사용하면 멈춘다.
if와 while 차이점
한번만 검사하고 참이면 실행 <-> 조건식이 참이면 계속해서 실행.
do-while / 입력 값 확인하기
입력받아야 할 부분을 중복으로 쓰면 비효율적이기 때문에 입력받고자 하는 부분을 do를 이용해 한번만 적어서 while이 true가 되면 do가 계속 실행이 되도록 한다.
example>
while문으로만 코드 작성.
System.out.println("국어 성적 : ");
kor1 = scan.nextInt();
while (kor1<0 || kor1>100) {
System.out.println("성적범위를 벗어났습니다.");
System.out.println("국어 성적 : ");
kor1 = scan.nextInt(); //반복되는 문장.
}
↓ do를 이용해 불필요한 부분을 제거.
do {
System.out.println("국어 성적 : ");
kor1 = scan.nextInt();
if(kor1<0 || kor1>100)
System.out.println("성적범위를 벗어났습니다.");
} while (kor1<0 || kor1>100);
-> 0~100점사이가 아닌 값이 들어가게 되면 do가 계속해서 반복이 된다.
특정수 만큼 반복을 요할 때 쓰는 반복문.
while문에서 접근해보자.
int i = 0;
while(i<3) {
System.out.println("hello");
i++;
}
-> 한눈에 볼 수 있도록 하는 제어문 (가독성을 위해)
for문을 사용해보자.
for(int i =0; i<3; i++) { System.out.println("hello"); }
이렇게도 쓸 수 있다. (알아만 두기)
for(; true;) {
}
for(;;){
}
-> 오류나지 않음. 무한으로 반복하게 된다. 용도에 맞지 않아 좋은 코드는 아니다.
Q ) 1-10까지 더하기
int total = 0;
for(int i = 0; i<10; i++) {
total += 1+i;
System.out.printf("total is %d\n", total);
}
Q 응용 ) 3~7까지 더하기
int total = 0;
for(int i = 0; i<5; i++) {
total += 3+i;
System.out.printf("total is %d\n", total);
}