如何将< =或> =添加到int.Parse

时间:2018-02-19 11:49:43

标签: c# int

我正在做一些我希望用户能够输入介于0-9之间的数字并且为其吐出单词的内容,例如。 1合1。我对第一部分很好,但是,我不知道如何得到它以便它告诉用户它是否输入了无效的数字或字母。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _0_9_output
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Write a number between 0-9: ");
            int number = int.Parse(Console.ReadLine());
            if (number == 0)
            {
                Console.WriteLine("Zero");
            }
            else if (number == 1)
            {
                Console.WriteLine("One");
            }
            else if (number == 2)
            {
                Console.WriteLine("Two");
            }
            else if (number == 3)
            {
                Console.WriteLine("Three");
            }
            else if (number == 4)
            {
                Console.WriteLine("Four");
            }
            else if (number == 5)
            {
                Console.WriteLine("Five");
            }
            else if (number == 6)
            {
                Console.WriteLine("Six");
            }
            else if (number == 7)
            {
                Console.WriteLine("Seven");
            }
            else if (number == 8)
            {
                Console.WriteLine("Eight");
            }
            else if (number == 9)
            {
                Console.WriteLine("Nine");
            }
            else
            {
                (number >= 10);
            }

            {
                Console.Write("That was an invalid statement.");
            }


        }
    }
}

这是我的第一段代码之一,所以请慷慨提供提示/建议。我是一名年轻的程序员,我才开始在学校里学习这一点。

3 个答案:

答案 0 :(得分:10)

我建议两件事:

  1. 在下面的代码中提取模型(即数字名称)s_Numbers数组
  2. 使用int.TryParse代替Parse(检查bool在上下文中比捕获异常更容易)
  3. 这样的事情:

     class Program {
       // Model: numbers' names
       private static string[] s_Numbers = new string[] {
         "Zero", "One", "Two", "Three", "Four",
         "Five", "Six", "Seven", "Eight", "Nine" 
       };
    
       static void Main(string[] args) {
         Console.Write("Write a number between 0-9: ");
    
         // cyclomatic complexity reduction (10 ifs dropped), 
         // readability increasing
         //
         // out var number - C# 7.0 construction; if early C# version used:
         //  
         // int number;
         // if (int.TryParse(Console.ReadLine(), out number))  ...
         //
         if (int.TryParse(Console.ReadLine(), out var number)) 
           if (number >= 0 && number <= 9)
             Console.Write(s_Numbers[number]);     // number in [0..9] range 
           else
             Console.Write("Out of [0..9] range"); // number out of range 
         else 
           Console.WriteLine("That was an invalid statement."); // not an integer
       }
     }
    

答案 1 :(得分:-2)

您可以更改以下代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _0_9_output
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Write a number between 0-9: ");
            int number = int.Parse(Console.ReadLine());
            if (number == 0)
            {
                Console.WriteLine("Zero");
            }
            else if (number == 1)
            {
                Console.WriteLine("One");
            }
            else if (number == 2)
            {
                Console.WriteLine("Two");
            }
            else if (number == 3)
            {
                Console.WriteLine("Three");
            }
            else if (number == 4)
            {
                Console.WriteLine("Four");
            }
            else if (number == 5)
            {
                Console.WriteLine("Five");
            }
            else if (number == 6)
            {
                Console.WriteLine("Six");
            }
            else if (number == 7)
            {
                Console.WriteLine("Seven");
            }
            else if (number == 8)
            {
                Console.WriteLine("Eight");
            }
            else if (number == 9)
            {
                Console.WriteLine("Nine");
            }
            else
            {
                Console.Write("That was an invalid statement.");
            }

        }
    }
}

如果输入数字不在0-9之间,则其他语句获取执行并打印消息输出。

答案 2 :(得分:-2)

        static void Main(string[] args)
        {
        string x =  Console.ReadLine();


        try
        {


             if (int.Parse(x) == 0)
        {
            Console.WriteLine("Zero");
        }
        else if (int.Parse(x) == 1)
        {
            Console.WriteLine("One");
        }
        else if (int.Parse(x) == 2)
        {
            Console.WriteLine("Two");
        }
        else if (int.Parse(x) == 3)
        {
            Console.WriteLine("Three");
        }
        else if (int.Parse(x) == 4)
        {
            Console.WriteLine("Four");
        }
        else if (int.Parse(x) == 5)
        {
            Console.WriteLine("Five");
        }
        else if (int.Parse(x) == 6)
        {
            Console.WriteLine("Six");
        }
        else if (int.Parse(x) == 7)
        {
            Console.WriteLine("Seven");
        }
        else if (int.Parse(x) == 8)
        {
            Console.WriteLine("Eight");
        }
        else if (int.Parse(x) == 9)
        {
            Console.WriteLine("Nine");
        }


        }
        catch
        { 
            Console.WriteLine("That was an invalid statement");
        }

    }