計算階乘-當輸入的資料是帶小數時引發異常

kewlgrl發表於2016-04-21

問題及程式碼:

/* 
* Copyright (c) 2016, 煙臺大學計算機與控制工程學院 
* All rights reserved. 
* 檔名稱:search.cpp 
* 作    者:單昕昕 
* 完成日期:2016年4月21日 
* 版 本 號:v1.0 
* 問題描述:編寫一個計算階乘的程式,當輸入的資料是帶小數時,引發異常。
* 程式輸入:陣列元素,要查詢的元素。 
* 程式輸出:元素位置。 
*/

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class outofBoundException : ApplicationException//自定義異常
    {
        public outofBoundException(string msg)
            : base(msg)
        { }
    }
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                int ans = 1;
                Console.Write("請輸入n=");
                double n = double.Parse(Console.ReadLine());
                if (n-Convert.ToInt32(n) != 0)//一個小數的整數部分非0則稱為帶小數,若為0則稱純小數
                    throw new outofBoundException("不允許為帶小數!");
                else
                {
                    int i;
                    for (i = 1; i <= n; ++i)
                        ans *= i;
                }
                Console.WriteLine("n!="+ans);
               
            }
            catch (outofBoundException e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                Console.ReadKey();
            }
        }
    }
}

執行結果:



兩個點:一個強制型別轉換,一個自定義異常。

相關文章