본문 바로가기
컴퓨터/C#

[C#] 형변환, 산술연산자( /, %), if문, switch문

by 아기상어  2020. 5. 25.

 

형변환

            int iNum = (int)3.7; // 소숫점 아래는 모두 버린다.
            Console.WriteLine(iNum);    // 3 출력

- 실수를 정수형으로 캐스팅시 소숫점 아래를 버림

 

 

            double dNum;
            int iNum;

           Console.WriteLine("실수를 입력하세요");
           dNum = double.Parse(Console.ReadLine());    // double 형으로 변환
           Console.WriteLine(dNum);
           dNum = dNum+0.5;    //  소숫점 첫째자리 반올림
           iNum = (int)dNum;	// 소숫점 밑 버림
           Console.WriteLine(iNum);


- 이를 이용해 소숫점 첫째 자리에서 반올림을 할 수 있음.

 

 

 


 

C# 산술 연산자( / , % )

           int iNum1;
           int iNum2;
           int iNum3;
           Console.WriteLine("정수 1을 입력하세요");
           iNum1 = int.Parse(Console.ReadLine());

           Console.WriteLine("정수 2을 입력하세요");
           iNum2 = int.Parse(Console.ReadLine());
           iNum3 = iNum1 / iNum2;

           Console.WriteLine("{0}/{1} = {2}",iNum1, iNum2,iNum3); // 소숫점 이하는 버림
           Console.WriteLine("{0}%{1} = {2}", iNum1, iNum2, iNum1%iNum2); // 소숫점 이하는 버림

' / '는 몫연산

'%'는 나머지 연산

 

 

 

           double dNum1;
           double dNum2;

           Console.WriteLine("실수를 입력하세요");
           dNum1 = double.Parse(Console.ReadLine());    // double 형으로 변환
           Console.WriteLine("실수를 입력하세요");
           dNum2 = double.Parse(Console.ReadLine());    // double 형으로 변환
           Console.WriteLine("{0}/{1} = {2}", dNum1, dNum2, dNum1/dNum2); // 실수는 % 쓸필요 없음

실수도 연산 가능

 

 

 


 

제어문 if

if는 조건문으로 코드를 실행할지 실행하지 않을지 정할 수 있다.

               if(true) // if()사이에 조건문이 들어감 true 일때 실행, false일땐 실행하지 않음
               {
                   Console.WriteLine("참입니다");
               }

               if(false)
               {
                   Console.WriteLine("거짓입니다");
               }
            

 

 

 

예제1)

if문 중복

            int iNum1;
            Console.WriteLine("정수를 입력하세요");
            iNum1 = int.Parse(Console.ReadLine());

            if (0 == (iNum1 % 10))    // 우선순위를 ()로 표시해준다.
            {
                if (0 == (iNum1 % 3))   //  if문 중복
                Console.WriteLine("입력하신 정수는 10의 배수이면서 3의 배수 입니다");
            }
            //한문장으로 표현할 수 있다.
            if ( ( (0 == (iNum1 % 10)) && (0 == (iNum1 % 3)) ) )    // 우선순위를 ()로 표시해준다., AND연산자
            {
                Console.WriteLine("입력하신 정수는 10의 배수이면서 3의 배수 입니다");
            }

'=='은 비교 연산자, 좌우 값이 같을때 true를 반환, 다르면 false를 반환.
'&&'은 AND 연산자, 좌우 값이 true 일때만 true를 반환.

 

 


 

예제2)
else 이용 홀짝 판별

            int iNum1;
            Console.WriteLine("정수를 입력하세요");
            iNum1 = int.Parse(Console.ReadLine());

            if(0 == (iNum1%2))
            {
                Console.WriteLine("짝수");
            }
            else    
            {
                Console.WriteLine("홀수");    // if 조건문안의 값이 false 일때 실행
            }


if의 조건문의 값이 false 일땐 if를 뛰어넘고 else를 실행

 

 

 


 

예제3)

else if로 점수에 따른 학점

            int iScore;
            Console.Write("점수를 입력하세요 : ");
            // iScore에 점수를 아래에 작성 ->  슈도코드(의사표현, 가이드 역할 하는 코드)
            iScore = int.Parse(Console.ReadLine());
            Console.Write("학점은 ");
            if (90 <= iScore)
            {
                Console.Write("A");
            }
            else if(80 <= iScore)
            {
                Console.Write("B");
            }
            else if (70 <= iScore)
            {
                Console.Write("C");
            }
            else if (60 <= iScore)
            {
                Console.Write("D");
            }
            else
            {
                Console.Write("F");
            }
            Console.WriteLine("입니다");

 

else if는 if 조건에 해당되지 않을때 실행.

 

 


 

예제4)
윤년 계산하기

            Console.WriteLine("년도를 입력하세요");
            int iYear = int.Parse(Console.ReadLine());

            //400으로 나누어 떨어지는 해 : 윤년
            if (iYear%400 == 0)
            {
                Console.WriteLine("{0}은 윤년입니다.", iYear);
            }
            //400으로 나누어 떨어지는 않는 해 : 평년과 윤년이 섞여 있음
            else
            {
                //4로 나누어 떨어지는 해는 윤년 후보(평년과 윤년이 섞여 있음)
                if (iYear % 4 == 0)
                {
                    //100으로 나누어 떨어지지 않는 해는 윤년
                    if (iYear % 100 != 0)
                    {
                        Console.WriteLine("{0}은 윤년입니다.", iYear);
                    }
                    //100으로 나누어 떨어지는 해는 평년
                    else
                    {
                        Console.WriteLine("{0}은 평년입니다.", iYear);
                    }
                }
                //4로 나누어 떨어지지 않는 해 : 평년
                else
                {
                    Console.WriteLine("{0}은 평년입니다.", iYear);
                }
            }

윤년의 조건
1. 400으로 나누어 떨어져야 한다.
2. 4로 나누어 떨어져야 한다.

3. 100으로 나누어 떨어지지 않아야 한다.

           // &&와 ||를 사용하면 한줄로 조건문이 가능하다
            if ( ((0 == iYear%4) && (0 != iYear%100)) || (0==(iYear%400)))
            {
                Console.WriteLine("{0}는 윤년입니다.", iYear);
            }
            else
            {
                Console.WriteLine("{0}는 평년입니다.", iYear);
            }

'||'는 OR 연산자, 좌우 값이 하나라도 true일때 true를 반환한다.


 

switch 문

switch로 값을 연산한 다음 그 값에 따라 case를 나눠 실행시킬 수 있다.

 

예제)  점수에 따라 학점 출력하기

            int iNum;
            Console.Write("점수를 입력하세요 : ");
            iNum = int.Parse(Console.ReadLine());

            switch(iNum/10)
            {
                // case 옆엔 값만 쓸 수 있다.
                case 10:
                case 9:
                    Console.WriteLine("A");
                    break;
                case 8:
                    Console.WriteLine("B");
                    break;
                case 7:
                    Console.WriteLine("C");
                    break;
                case 6:
                    Console.WriteLine("D");
                    break;
                default:
                    Console.WriteLine("F");
                    break;
            }

 

switch()사이엔 참 거짓이 아니라 값을 들어오게 해야하며 값에따라 case가 실행된다.