1. 조건문 : if문, switch문
조건문은 조건식에 따라 실행할지 실행하지 않을지 판단하는 용도로 사용된다. 조건문은
if문과 switch문이 있으며 if문은 true, false를 판단해 실행하고 switch문은 변수의 값에 따라 실행된다.
if문은 주로 비교 연산자나 boolean 타입 변수를 통해 true, flase를 판단해 실행 여부를 결정한다. true면 해당 블록을 실행하고 flase이면 실행하지 않는다.
if( 조건식 ) {
실행문
}
조건식이 true가 아닐 경우 내부에 작성된 실행문은 무시한다.
if~else문은 간단히 말하면 "이거 아니면~ 이거" 정도로 설명할 수 있을 것 같다.
if( 조건식) { //true 인지 판단
실행문
}else{ //if문에 적힌 조건식이 true가 아닐 경우 실행
실행문
}
if문에 적힌 조건식이 true일 때에는 else문에 적힌 실행문을 무시하고 반대로 flase 일 때에는 if문에 적힌 실행문을 무시한 채 else에 적힌 실행문만 실행한다.
한 단계 더 나아가면 if~ else if ~else문이 있다. 위 처럼 설명하자면 그냥 " 이거 아니면 이거~ 아니면 이거"를 나열한 것과 같다고 보면 된다. true false를 판단할 경우의 수가 많은 경우 계속해서 나열해 사용하지만 효율적으로 사용하지 않을 경우 실행 결과가 나오는데 늦어질 수 있으므로 유의해야한다.
switch문은 if문과 마찬가지로 조건 제어문이다. witch문은 true인지 false인지 판단하는 것이 아니라 변수 값이 무엇이냐에 따라 실행 여부를 판단한다. 잘 사용한다면 때때로 if~ else if ~else문 보다 효율적으로 사용할 수 있다.
*예시
학점 계산기
Scanner scanner = new Scanner(System.in);
System.out.printf("점수 입력 : ");
int input = scanner.nextInt();
switch (input/10){
case 10:
System.out.printf("%d점은 학점 A입니다.", input);
break;
case 9:
System.out.printf("%d점은 학점 A입니다.", input);
break;
case 8:
System.out.printf("%d점은 학점 B입니다.", input);
break;
case 7:
System.out.printf("%d점은 학점 C입니다.", input);
break;
case 6:
System.out.printf("%d점은 학점 D입니다.", input);
break;
default:
System.out.printf("%d점은 학점 F입니다.", input);
break;
}
2. 반복문 for문, while문, do~while문
반복문은 특정 실행문이 반복적으로 실행되도록하는 용도이다. 반복문의 종료는 for문, while문, for문이 있다.
for문은 개인적인 생각으로 가장 많이 사용되며 보편적인 것 같다. 단순히 반복시키기 위한 구문이며 단순 for문은 사용법도 간단하다.
public static void main(String[] args) {
int sum = 0;
for ( int i = 1; i<=100; i++){
sum += i;
}
System.out.println(sum);
}
// 출력 결과
5050
조금 복잡한 경우는 이중 for문을 이용한 구구단이 있다.
for문 안에 for문을 사용해서 2단부터 9단까지 출력하는 코드를 작성할 수 있다.
*예시
public static void main(String[] args) {
int i = 0;
int k = 0;
for (i = 2; i<=9; i++){
for (k = 1; k<=9; k++){
System.out.printf("%d X %d = %d\n", i, k,i*k);
}
}
}
for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 계속해서 반복한다. 조건식에는 비교 연산이나 논리 연산이 주로 사용되며 false일 경우 반복이 중지된다.
while ( 조건식 ) {
true일 경우 실행
}
이 처럼 계속 반복되는 특징을 활용해 사용자가 입력하는 값을 계속 더하는 코드도 작성할 수 있게 된다.
*예시
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0;
boolean i = true;
while (i){
System.out.printf("숫자를 입력하세요 : ");
int k = scanner.nextInt();
sum += k;
System.out.printf("%d\n", sum);
}
}
}
do~while문은 조건식에 의해 반복하는 점은 while문과 같다. 하지만 while문은 시작할 때 부터 조건식을 검토하여 실행 여부를 판단하지만 do~while문은 실행문을 먼저 실행한 뒤 반복 여부를 결정할 수 있다.
do{
실행문
} while(조건식);
한번 실행한 뒤 반복문을 결정하는 특징을 갖고 있지만 나는 아직 do~while문을 어디에 활용할 수 있는지 잘 모르겠다.
break문은 앞서 작성한 반복문들을 중지시키고 싶을 때 사용된다.주로 if문과 혼합해서 사용한다.
앞서 작성한 while문의 예시를 가져와서 특정 값에 도달하면 멈추는 코드를 작성해보았다.
*예시
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0;
boolean i = true;
while (i){
System.out.printf("숫자를 입력하세요 : ");
int k = scanner.nextInt();
sum += k;
System.out.printf("%d\n", sum);
if(sum >= 100){
System.out.println("100보다 크거나 같아서 종료되었습니다.");
break;
}
}
}
// 출력 결과
개인적을로 잘 사용하면 가장 재미있는 구문이 반복문인 것 같다. do~while문의 예시도 알게되면 추가해야겠다.