我正在做一些我希望用户能够输入介于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.");
}
}
}
}
这是我的第一段代码之一,所以请慷慨提供提示/建议。我是一名年轻的程序员,我才开始在学校里学习这一点。
答案 0 :(得分:10)
我建议两件事:
s_Numbers
数组int.TryParse
代替Parse
(检查bool
在上下文中比捕获异常更容易)这样的事情:
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");
}
}