Search

반응형

'IF문'에 해당되는 글 2건

  1. 2020.06.25 [영문법]가정법, if 조건문(if conditional) 4가지 타입 이해하기 편.
  2. 2020.04.19 [자바]조건문 if-else문과 switch-case문, 예제로 살펴보기.
반응형

만약 내가 중학생으로 돌아간다면,

이런 상상 많이 해보셨죠?

이렇게 불가능한 일을 상상하거나,

예전 일을 후회하거나,

조건에 의한 앞으로의 의도나 의지를 

표현하고 싶을 때 사용하는

"IF"

에 대해 알아보겠습니다.

 

if는 만약이라는 의미로 조건으로 사용하는데

가정한다면?이라는 말로

가정법이라고도 표현합니다.

그 반대로 직설법이라고도 하지요.

예를 들어,

만약 내가 술을 안마셨다면

내가 운전했을 텐데.. 미안~

이렇게 이미 술은 마셨지만

안 마셨다는 가정(조건)으로

본인의 의사를 표현할 때  if를 사용합니다.

이 문장을 직설법으로 표현한다면

내가 술을 마셔서 운전을 할 수 없어. 가 됩니다.

그럼 이제 if 조건문 4가지 타입을 보겠습니다.

 

If I get hurt, I go to the doctor.

If I get hurt, I will go to the doctor.

If I got hurt, I would go to the doctor.

If I had been hurt, I would have gone to the doctor.

 

이렇게 4가지 형식으로 조건문을 사용하는데요.

zero conditional, first conditional,

second conditional, third conditional

이렇게 정의합니다.

우리가 배우는 영문법은

가정법, 조건문으로 배우고 있습니다.

 

Zero Conditional (0번째 조건부)

If I get hurt, I go to the doctor.

(만약 내가 다치면, 나는 의사한테 간다)

이 문장을 살펴보면 If절도 현재시제, 결과절도 현재시제입니다.

현재시제는 일반적 사실, 습관 등을 표현합니다.

그래서 조건에 따른 결과는

당연한 사실이고 이치여야 합니다.

더운 여름에 얼음을 밖에 꺼내 놓으면

녹는다는 사실을 표현하는 경우에 말이죠.

즉 이 조건문은 둘 다 현재시제를 사용했고 의미를 확인해 보면

평소에 나는 다치면 의사한테 간다는 표현을 한 겁니다.

0번째 조건부를 사용하면 됩니다.

 

First Conditional (1번째 조건부)

If I get hurt, I will go to the doctor.

(아프면 의사에게 갈 것이다.)

현시점을 기준으로 아프면

의사에게 가겠다는 의지를 말합니다.

만약 어떻게 한다면 앞으로 어떻게 할

의지나 의도가 있다로 이해하시면 됩니다.

조건에 의해서 결과부의 내용은

앞으로 어떻게 하겠다는

의지나 의도를 will을 사용해서 표현하고

1번째 조건부를 사용합니다.

 

Second Conditional (2번째 조건부)

If I got hurt, I would go to the doctor.

(만약 내가 다쳤다면, 나는 의사한테 갈 것이다.)

If he knew her number, he would call her.

(만약 그가 그녀의 전번을 알았다면, 그는 전화했을 텐데..)

현재가 중요합니다.

현재 다친 것은 아니지만 만약 다쳤다면,

의사에게 갔을 거라는 기존의 의지나 의도를 표현합니다.

Would는 과거 어느 시기부터 현재 시점까지의

의지나 의도를 갖고 있었다는 의미가 있습니다.

, 앞으로 어떻게 하겠다는 의미가 아니라,

그랬었다면 그렇게 했을 거라는 의미가 있습니다.

두 번째 문장은 만약 그가 그녀의 전번을 알았다면

(현재 모르는 상태라는 거죠)

그녀에게 전화했을 의지나 의도가

전부터 있었다는 의미입니다.

(현재 전번을 모르니 의지나 의도만 있을 뿐 하지 못한다는 의미)

 

Third Conditional (3번째 조건부)

If I had been hurt, I would have gone to the doctor.

(내가 다쳤었더라면, 난 의사에게 갔었을 거야)

이 문장은 과거완료로 조건문을 시작합니다.

과거 완료는 이미 완료(끝)가 된 상황을 말하는 것이고

그 뒤 상황도 현재 완료

그 또한 완료가 된 상황을 이야기합니다.

옛날이야기인데 못했거나 그 당시 희망사항

이야기할 때 사용한다고 보면 됩니다.

만약 내가 그때 이 수동 용지로 로또를

구매했었더라면, 1등이 되었을 텐데.. 아쉽네”

 

기본 4가지의 조건문에 대해 알아봤습니다.

당연히 그렇게 하면 그렇게 되거나 그렇게 하는 거면

0번째 조건문 (현재-현재)을 사용하고

그렇게 하면 앞으로 그렇게 할 의지나 의도가 있을 때면

1번째 조건문(현재-will)을 사용하고

만약 그렇게 되었다면 그렇게 할 텐데.. 는

2번째 조건문(과거-would/could..)을 사용하고

예전에 그렇게 되었더라면 그렇게 되었을 텐데로 표현한다면

3번째 조건문(과거완료-would/could.. + 현재완료)로 사용하면 됩니다.

지금까지 if 조건절(if conditional, 가정법)에 대해 알아봤습니다.

다음 이야기도 기대되시면

구독좋아요 부탁드려요.

즐기는 영어공부하세요~

반응형
반응형

안녕하세요. 신기한연구소 티보이입니다.

자바에서 필수로 알아야 하는 조건문에 대해 알아봅니다.

자바에서 사용하는 조건문은 if-else문과 switch-case문 그리고 3항연산자가 있습니다.

? 세가지가 존재할까요?

어떤 것이 더 좋고 말고는 없습니다.

모두 좋은 조건문이고 가독성에 맞게 잘 사용하시면 됩니다.

그래도 보통은 switch-case문보다는 if-else문을 주로 사용합니다.

코드에서 가장 중요한 부분 중 하나는 가독성이거든요.

먼저 switch문에 대해 알아봅니다.

초기에 switch-case문은 조건식에 사용 가능한 데이터 타입은 [byte, short, char, int] 였습니다.

가장 많이 사용하는 변수형인 String가 지원되지 않아서 사실 일반 개발자들에게는 외면당하고 있었지요.

그런데 JDK 7부터는 String 도 대열에 합류하게 됩니다.

고정된 값인 상수를 사용하는 조건문인 경우 if-else도 가능하지만 틀에 맞아 보이는 switch-case문의 가독성이 더 좋아 보입니다.

자바에서 switch-case문은 어떻게 만들어서 사용하는지 살펴보겠습니다.

Switch(조건식) {

           Case 값1:

                      실행식;

                      Break;

           Case 값2:

                      실행식;

                      Break;

Case 값3:

                      실행식;

                      Break;

           …

           Default :

                      실행식;

}

Switch-case문 조건식의 값과 case문의 값이 일치하면 해당 실행문을 처리하고 break;문에 의해 빠져나오게 됩니다.

주의할 점은 break문을 깜박하고 넣지 않으면 일치하는 case문의 실행문을 처리한 뒤 그 뒤의 모든 case문과 default문도 같이 실행하기 때문에 잘 확인해야 합니다.

컴파일시나 런타임시 오류로 표기되지 않기 때문에 간혹 실수하는 경우가 있거든요.

특히 운영 데이터를 처리하는 과정에서 이런 실수로 인해 머리아픈 상황이 발생할 수 있기 때문입니다.

숫자형인 intchar, 그리고 문자열인 String으로 만든 switch-case문의 샘플을 만들어보겠습니다.

int형으로 만든 샘플입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Type int
    
switch(i) {
    case 10 :
        System.out.println("The value is 10");
        break;
    case 20 :
        System.out.println("The value is 20");
        break;
    case 30 :
        System.out.println("The value is 30");
        break;
    default :
        System.out.println("no value");
        
}
cs

char형으로 만든 샘플입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Type char
char c = 'B';
switch(c) {
    case 'A' :
        System.out.println("The value is A");
        break;
    case 'B' :
        System.out.println("The value is B");
        break;
    case 'C' :
        System.out.println("The value is C");
        break;
    default :
        System.out.println("no value");
 
}
cs

String형으로 만든 샘플입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Type String
String s = "GO";
switch(s) {
    case "COME" :
        System.out.println("The value is COME");
        break;
    case "GO" :
        System.out.println("The value is GO");
        break;
    case "SIT" :
        System.out.println("The value is SIT");
        break;
    default :
        System.out.println("no value");
 
}
cs

break가 없는 경우 샘플입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//break가 없다면...
int j = 20;
switch(j) {
    case 10 :
        System.out.println("The value is 10");
    //    break;
    case 20 :
        System.out.println("The value is 20");
    //    break;
    case 30 :
        System.out.println("The value is 30");
    //    break;
    default :
        System.out.println("no value");        
}
cs

짧은 실행문을 가지고 있고 조건식이 상수라면 가독성이 더 좋아 보일겁니다. 

이제 if-else문에 대해 알아보는데 어떻게 구성되어 있는지 살펴보겠습니다.

If (조건식) {

           실행문

}else if (조건식) {

           실행문

}

Else{

           실행문

}

If-else문의 조건식은 Boolean값입니다. 조건식이 참인지 거짓인지로 판단해서 해당 실행문을 처리하는 건데요.

중요한 건 if로 시작해서 else if로 쭉 확인하다가 하나가 truebreak문이 없어도 해당 실행문만 처리하고 중단합니다.

실행문이 단문이면 굳이 { }를 사용하지 않아도 되고 2행 이상이면 반드시 { }로 묶어줘야 합니다.

조건이 하나면 if문만 사용하면 되고 else문도 필수는 아닙니다.

예문을 살펴볼께요.

1
2
3
4
5
6
7
8
9
boolean b = true;
String s1 = "T";
if(b) {
    System.out.println("boolean test true");
}else if ("T".equals(s1)) {
    System.out.println("String is T");
}else {
    System.out.println("bye");
}
cs

 

If문은 조건식의 Boolean값이기에 어떤 식도 만들어 사용할 수 있답니다.

Switch문과 if문의 속도는 어떤 것이 확실히 빠르다고 할 순 없어 보입니다.

테스트를 해보면 switch문이 빠른 경우가 더 많지만 if문이 더 빠른 경우도 있기에 절대적이지 않다는 의미입니다.

 

초반에 이야기 했듯이 프로그램은 가독성이 중요한 부분을 차지합니다.

필요없이 소스를 많이 만들거나 보기 어렵게 구성하는 것은 좋지 않는 코딩습관이거든요.

어떤 상황이냐에 따라서 switch-case, if-else, 3항연산자를 적절히 사용하면 되겠습니다.

사실 필자는 if-else문의 사용빈도가 거의 95%이상이라는 점

즐코딩 하세요~

반응형