C# 如何使用嵌套的switch语句将数字转换为0-9999之间的单词
所以我尝试修改这段代码,它最多只能转换数百次 对此C# 如何使用嵌套的switch语句将数字转换为0-9999之间的单词,c#,C#,所以我尝试修改这段代码,它最多只能转换数百次 对此 class Program { static void Main(string[] args) { Console.Write("Enter a number between 0 and 9999: "); short number = Convert.ToInt16(Console.ReadLine()); byte thousandths = (byte
class Program
{
static void Main(string[] args)
{
Console.Write("Enter a number between 0 and 9999: ");
short number = Convert.ToInt16(Console.ReadLine());
byte thousandths = (byte)(number / 1000 | 0);
byte hundreds = (byte)(number / 100 | 0);
byte tensAndOnes;
if (number > 99)
{
tensAndOnes = (byte)(number % 100);
}
else tensAndOnes = (byte)(number * 1);
byte ones = (byte)(number % 10);
switch (thousandths)
{
case 1: Console.Write("One thousand "); break;
case 2: Console.Write("Two thousand "); break;
case 3: Console.Write("Three thousand "); break;
case 4: Console.Write("Four thousand "); break;
case 5: Console.Write("Five thousand "); break;
case 6: Console.Write("Six thousand "); break;
case 7: Console.Write("Seven thousand "); break;
case 8: Console.Write("Eight thousand "); break;
case 9: Console.Write("Nine thousand "); break;
}
if (thousandths >= 1 && hundreds >= 1) Console.Write(" and ");
if (hundreds >= 1 && hundreds < 10) Console.Write("One hundred");
else if (hundreds >= 10 && hundreds < 20) Console.Write("Two hundred");
else if (hundreds >= 20 && hundreds < 30) Console.Write("Three hundred");
else if (hundreds >= 30 && hundreds < 40) Console.Write("Four hundred");
else if (hundreds >= 40 && hundreds < 50) Console.Write("Five hundred");
else if (hundreds >= 50 && hundreds < 60) Console.Write("Six hundred");
else if (hundreds >= 60 && hundreds < 70) Console.Write("Seven hundred");
else if (hundreds >= 70 && hundreds < 80) Console.Write("Eight hundred");
else if (hundreds >= 80 && hundreds < 90) Console.Write("Nine hundred");
switch (hundreds)
{
case 1: Console.Write("One hundred "); break;
case 2: Console.Write("Two hundred "); break;
case 3: Console.Write("Three hundred "); break;
case 4: Console.Write("Four hundred "); break;
case 5: Console.Write("Five hundred "); break;
case 6: Console.Write("Six hundred "); break;
case 7: Console.Write("Seven hundred "); break;
case 8: Console.Write("Eight hundred "); break;
case 9: Console.Write("Nine hundred "); break;
}
if (hundreds >= 1 && tensAndOnes >= 1) Console.Write(" ");
if (tensAndOnes >= 20 && tensAndOnes < 30) Console.Write("Twenty");
else if (tensAndOnes >= 30 && tensAndOnes < 40) Console.Write("Thirty");
else if (tensAndOnes >= 40 && tensAndOnes < 50) Console.Write("Fourty");
else if (tensAndOnes >= 50 && tensAndOnes < 60) Console.Write("Fifty");
else if (tensAndOnes >= 60 && tensAndOnes < 70) Console.Write("Sixty");
else if (tensAndOnes >= 70 && tensAndOnes < 80) Console.Write("Seventy");
else if (tensAndOnes >= 80 && tensAndOnes < 90) Console.Write("Eighty");
else if (tensAndOnes >= 90 && tensAndOnes < 100) Console.Write("Ninety");
switch (tensAndOnes)
{
case 1: Console.Write("One"); break;
case 2: Console.Write("Two"); break;
case 3: Console.Write("Three"); break;
case 4: Console.Write("Four"); break;
case 5: Console.Write("Five"); break;
case 6: Console.Write("Six"); break;
case 7: Console.Write("Seven"); break;
case 8: Console.Write("Eight"); break;
case 9: Console.Write("Nine"); break;
case 10: Console.Write("Ten"); break;
case 11: Console.Write("Eleven"); break;
case 12: Console.Write("Twelve"); break;
case 13: Console.Write("Thirteen"); break;
case 14: Console.Write("Fourteen"); break;
case 15: Console.Write("Fifteen"); break;
case 16: Console.Write("Sixteen"); break;
case 17: Console.Write("Seventeen"); break;
case 18: Console.Write("Eighteen"); break;
case 19: Console.Write("Nineteen"); break;
}
if (tensAndOnes > 20)
{
switch (ones)
{
case 1: Console.Write("-one"); break;
case 2: Console.Write("-two"); break;
case 3: Console.Write("-three"); break;
case 4: Console.Write("-four"); break;
case 5: Console.Write("-five"); break;
case 6: Console.Write("-six"); break;
case 7: Console.Write("-seven"); break;
case 8: Console.Write("-eight"); break;
case 9: Console.Write("-nine"); break;
}
}
if (number == 0) Console.Write("Zero");
Console.ReadKey();
}
}
类程序
{
静态void Main(字符串[]参数)
{
编写(“输入一个介于0和9999之间的数字:”);
short number=Convert.ToInt16(Console.ReadLine());
字节千分之=(字节)(数字/1000 | 0);
字节百=(字节)(数字/100 | 0);
字节张量和;
如果(数量>99)
{
tensAndOnes=(字节)(数字%100);
}
else-tensAndOnes=(字节)(数字*1);
字节一=(字节)(数字%10);
开关(千分之一)
{
案例1:控制台。写入(“一千”);中断;
案例2:控制台。写(“两千”);中断;
案例3:控制台。写(“三千”);中断;
案例4:控制台。写(“四千”);中断;
案例5:控制台。写(“五千”);中断;
案例6:控制台。写(“六千”);中断;
案例7:控制台。写(“七千”);中断;
案例8:控制台。写(“八千”);中断;
案例9:控制台。写(“九千”);中断;
}
如果(千分之一>=1&百分之一百>=1)控制台写入(“和”);
如果(百分位>=1&&百分位<10)控制台写入(“百分位”);
如果(百分之十>=10&&百分之二十)控制台写入(“二百”);
否则,如果(百分之二十&&百分之三十)控制台。写入(“三百”);
否则,如果(百分之三十&&百分之四十)控制台。写入(“四百”);
否则,如果(百分之四十&&百分之五十)控制台。写入(“五百”);
如果(百分位>=50和百分位<60)控制台写入(“六百”);
否则,如果(百分之六十&&百分之七十)控制台。写入(“七百”);
如果(百位>=70&&百位<80)控制台写入(“八百位”);
如果(百位>=80&&百位<90)控制台,则写入(“九百”);
交换机(数百)
{
案例1:控制台。写入(“一百”);中断;
案例2:控制台。写入(“二百”);中断;
案例3:控制台。写(“三百”);中断;
案例4:控制台。写入(“四百”);中断;
案例5:控制台。写(“五百”);中断;
案例6:控制台。写(“六百”);中断;
案例7:控制台。写(“七百”);中断;
案例8:控制台。写(“八百”);中断;
案例9:控制台。写(“九百”);中断;
}
如果(数百个>=1&&tensAndOnes>=1)控制台。写入(“”);
如果(tensAndOnes>=20&&tensAndOnes<30)控制台写入(“二十”);
如果(tensAndOnes>=30&&tensAndOnes<40)控制台写入(“三十”);
否则,如果(tensAndOnes>=40&&tensAndOnes<50)控制台写入(“四十”);
如果(tensAndOnes>=50&&tensAndOnes<60)控制台,则写入(“五十”);
否则,如果(tensAndOnes>=60&&tensAndOnes<70)控制台。写入(“六十”);
如果(tensAndOnes>=70&&tensAndOnes<80)控制台,则写入(“70”);
否则,如果(tensAndOnes>=80&&tensAndOnes<90)控制台写入(“八十”);
如果(tensAndOnes>=90&&tensAndOnes<100)控制台写入(“90”);
开关(tensAndOnes)
{
案例1:控制台。写入(“一”);中断;
案例2:控制台。写入(“两”);中断;
案例3:控制台。写入(“三”);中断;
案例4:控制台。写入(“四”);中断;
案例5:控制台。写入(“五”);中断;
案例6:控制台。写入(“六”);中断;
案例7:控制台。写入(“七”);中断;
案例8:控制台。写入(“八”);中断;
案例9:控制台。写入(“九”);中断;
案例10:控制台。写入(“十”);中断;
案例11:Console.Write(“十一”);break;
案例12:控制台。写(“十二”);中断;
案例13:控制台。写入(“十三”);中断;
案例14:控制台。写入(“十四”);中断;
案例15:控制台。写入(“十五”);中断;
案例16:控制台。写入(“十六”);中断;
案例17:控制台。写(“十七”);中断;
案例18:控制台。写(“十八”);中断;
案例19:控制台。写入(“十九”);中断;
}
如果(tensAndOnes>20)
{
交换机(个)
{
案例1:控制台。写入(“-1”);中断;
案例2:Console.Write(“-2”);break;
案例3:控制台。写入(“-3”);中断;
案例4:控制台。写入(“-4”);中断;
案例5:控制台。写(“-5”);中断;
案例6:控制台。写(“-6”);中断;
案例7:Console.Write(“-seven”);break;
案例8:Console.Write(“-8”);break;
案例9:Console.Write(“-9”);break;
}
}
如果(number==0)控制台写入(“零”);
Console.ReadKey();
}
}
但当我尝试输入1100时,它输出的是1200而不是1100
我必须使用嵌套的switch语句,因此不允许使用方法或数组既然您的数字大于999,则需要修改计算百分位数的方式:
byte hundreds = (byte)((number - (1000 * thousandths)) / 100 | 0);
当输入为“1100”时,这将把
数百
设置为1。不要编辑堆栈溢出问题标题以添加“已解决”之类的词。这是不必要的,也不符合社区准则。