본문 바로가기
[ Program ]/c#스터디

18.조건문(분기문) , bool형식 , 논리연산자2 - if

by 관이119 2021. 9. 20.





앞장에서 조건문중 if 문 형식을 확인했다.

if(조건)

{

     조건이 참일때 실행할내용

}

else

{

     조건인 거짓일때 실행할내용

}

 

기본형태는 위와 같은데 여러가지 다른형태로 사용할 수도 있다.

아래 형식들을 보자.

<형식1>

if ( 조건 )

{

     조건이 참일때 실행할 내용

}

 

<형식2>

if ( 조건 )

{

     조건이 참일때 실행할 내용

}

else if ( 조건 )

{

     첫번째 if 에 걸리지않은 값들중 조건이 참일때 실행할 내용

}

 

<형식3>

if ( 조건 )

{

     조건이 참일때 실행할 내용

}

else if ( 조건 )

{

      첫번째 if 에 걸리지않은 값들중 조건이 참일때 실행할 내용

}

else 

{

      위 if 나 else if 에 걸리지않은 값들을 실행할 내용

}

 

위 형식들을 보면 else if 가 있고 else 가 있다.

else if 는 if 에서 걸러지지않은 항목들중에서 원하는 조건을 또 추가해서 걸러내는것이다.

예를 들면 if ( a>100 ) 이라는 조건을 쓰면 else if 에는 a <= 100 인 것들로 다시시작한다는 느낌이다.

그리고 최종적으로 모든조건들에서 걸러지고 남은것을 else 에서 받는다.

 

그리고 else if 나 else 는 쓸수도 뺄수도 있다. 

형식1처럼 if 하나만 사용도 가능하다.

 

내용이 복잡하니 아래 예제를 보자.

int a = 30;

if ( a>100 )    // a는 30이므로 여기는 통과한다.

{

      MessageBox.Show("a는 100보다크다");

}

else if (a > 30)    // a 는 30이므로 여기도 통과한다.

{

     MessageBox.Show("a는 30보다크다");

}

else  // 최종적으로 여기서 걸린다.

{

    MessageBox.Show("a는 30보다작거나 같다.");

}

 

이렇게 할경우 최종적으로 마지막 else 에서 걸려서 else 의 메세지가 출력된다.

만약 a 가 50일경우는 어떻게 될지 직접테스트해보자.

 

걸러진다는 표현을 쓰는 의미를 잘 파악해보도록 하자.

위의 예제는 아래와같이써도 같은의미인데 else if 부분을 보면 알수 있다.

위예제와 아래예제 둘은 차이가 있지만 결론적으로 같은의미가 된다.

int a = 30;

if ( a>100 )    // a는 30이므로 여기는 통과한다.

{

      MessageBox.Show("a는 100보다크다");

}

else if ( a<=100 &&  a > 30)    // a 는 30이므로 여기도 통과한다.

{

     MessageBox.Show("a는 30보다크다");

}

else  // 최종적으로 여기서 걸린다.

{

    MessageBox.Show("a는 30보다작거나 같다.");

}

 

그리고 다음예제를 보자.

int a = 30;

if ( a > 100 )

{

    MessageBox.Show("a는 100보다크다");

}

 

else 나 else if 를 빼도 된다고 했지만 위와 같이 코드를 짜면 어떻게 될까?

실행해보면 아무것도 하지않는다.

 

아래예제와 같이 바꾸고 실행해보자.

int a = 30;

if ( a > 100 )

{

    MessageBox.Show("a는 100보다크다");

}

MessageBox.Show(a.ToString());

 

이렇게 변경하면 30이 출력된다.

만약 a 값이 110 이라면 어떻게 될지 직접변경해서 연습해보자.

 

if 문은 위와 같이 사용할수도 있고 중첩해서 사용하는경우도 많다.

아래 예제를 보자.

int a = 30;

if ( a<100 ) 

{

       if (a<=30)

       {

               MessageBox.Show("a는 30보다 작거나 같다.");

       }

       else

       {

              MessageBox.Show("a는 30보다 크다"); 

       }

}

 

위예제의 경우 순서대로 따라 가보면 어떤값이 나올지 쉽게 알수 있다.

직접연습해보자.

 

 

이전에도 말했지만 프로그램은 조건문, 반복문, 변수만 사용할줄알면 모든걸 다만들수 있다.

나머지는 꾸미기용이라고 생각하면된다.

가장중요한 내용들이기때문에 손이 알아서 만들정도로 연습해야한다.

 

 

 

***숙제 : 텍스트박스에 내점수를 넣고 버튼을 누르면 90 점이상 은 A 가 출력되고 90점 미만 80점이상 일경우 B  , 80점미만 70점이상일경우 C , 그외는 F 가 출력되는 프로그램을 만들어보자. (꼭 if 문사용)

댓글