c#控制台程序输入大小限制

2025-01-07 09:57:56
推荐回答(4个)
回答1:

用try-catch抛出就好

按你的界面猜猜你的代码 估计应该调整成下面这样,还望满意

using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("hello");
            Console.WriteLine("请输入你的姓名");
            string name = Console.ReadLine();
            Console.WriteLine("您好,"+name+" ,欢迎使用program平台\r\n请选择你的职业");
            Console.WriteLine("1.法师\r\n2.战士");
            while (true)
            {
                try
                {
                    char c = Console.ReadKey().KeyChar;
                    if (c == '1')
                    {
                        Console.WriteLine("\r\n" + name + "选择的职业为法师");
                        break;
                    }
                    else if (c == '2')
                    {
                        Console.WriteLine("\r\n" + name + "选择的职业为战士");
                        break;
                    }
                    else Console.WriteLine("\r\n请正确输入选择职业!\r\n1.法师\r\n2.战士");
                }
                catch { Console.WriteLine("\r\n请正确输入选择职业!\r\n1.法师\r\n2.战士"); }
            }
            Console.WriteLine("职业选择完成!");
            Console.ReadKey();
        }
    }

回答2:

//作个输入判断就行了:
刚注意到你用的是C#,开始以为你用的是Delphi呢,在Delphi团队看到的题。
我改成C吧。呵呵。

int z=0;
while (z!=1) and (z!=2)
{
scanf("%i",&z);
if (z!=1) or (z!=2)
printf("必须输入1或2");
}

以下是Delphi的:
Var
z :Integer;
begin
z:=0;
while (z<>1) and (z<>2) do //直到输入了1或2
begin
Readln(z);
if (z<>1) or (z<>2) then
writeln('必须输入1或2!');
end;
end;

回答3:

switch (输入的值){

case 1:
XXXXX
break;
case 2:
XXXX
break;
default:
break;
}
XXXX 是你想写的东西

回答4:

建议使用switch case语句
对于非1和2的可以写在default里面