본문 바로가기
Language/C#

c# do while문

by ninanio3 2011. 12. 24.
do~while문은 while과는 약간 다르다.

do
{
실행될 함수
}
while(조건문)

이렇게 입력한다. 그러면 while에 있는 조건을 비교해서 true가 될 때까지 실행시킨다.
실행되는 순서는 do, 실행될 함수, 조건문 순이다.
여기서 중요한 것은 do를 맨 처음 실행한다는 것이다.

아래는 do while에 대한 문제다.
입력받은 수의 각 자리를 구해서 합하는 함수를 만들어본다.

[예제]

 * 문제 내용 : 입력된 수의 각 자릿수의 합을 구하자.
 * 학습 내용 : do~while 조건문 사용법을 익힌다.
 * 힌트 내용 : do~while은 적어도 한 번은 실행된다.

각 자리는 n%10을 하며 된다. n%10은 n을 10으로 나눈 나머지를 구하는것이다. 12345를 입력 받아서 12345%10을 하면 1234가 되고 값은 5가 된다. 5를 return하는 것이다. 이것으로 각 자리를 구하고 난 후, 10을 나누어서 다음 자릿수를 다시 구하면 된다.

지금 pastebin 웹사이트가 고장난 관계로 컬러입히는 건 다음에 해야겠다. 이것도 까먹으면 그냥 그런거다.. ㅋ



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Com.JumBo.Logic;
/*
 * 문제 내용 : 입력된 수의 각 자릿수의 합을 구하자.
 * 학습 내용 : do~while 조건문 사용법을 익힌다.
 * 힌트 내용 : do~while은 적어도 한 번은 실행된다.
 * */
namespace Console_Test
{
    public class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("do~while을 이용하여 입력된 수의 1의자리만 구한다.");
            Console.Write("정수를 입력하세요:");
            int num = int.Parse(Console.ReadLine());
            Calc.Print(num);
        }
    }
}



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Com.JumBo.Logic
{
    public class Calc
    {
        public static int Oper(int n)
        {
            int total = 0;
            do
            {
                total += n % 10;
                n /= 10;
            }
            while (n != 0);
            return total;
        }
        public static void Print(int n)
        {
            Console.WriteLine("{0}의 각 자리수 합은 {1}입니다.", n, Oper(n));
        }
    }
}


이 문제의 출처는 c#프로그래밍 기본기 익히기, 정보문화사, 25000, 조효은지음,

'Language > C#' 카테고리의 다른 글

c# Boxing, UnBoxing  (0) 2011.12.30
c# 배열의 개념이 들어간 버블정렬  (0) 2011.12.24
c# while문의 사용  (0) 2011.12.24
c# switch case 문  (0) 2011.12.20
c# 친화수 구하기  (0) 2011.12.12