Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用try/catch检查数字是否在1-3范围内?c# /*Propmt饮料用户*/ 而(!bool_有效) { bool_valid=true; 控制台。WriteLine(“请选择一种饮料;按1表示可乐,按2表示雪碧,按3表示Prpper医生”); 尝试 { int_bvg_type=Convert.ToInt32(Console.ReadLine()); (int_bvg_型>0)和&(int_bvg_型0)和&(int_bvg_type0)和&(int_bvg_type0)和&(int_bvg_type0&&int_bvg_type0和int_bvg_type0&&int_bvg_type0和int_bvg_type0)和&(int_bvg_型0)和&(int_bvg_型_C# - Fatal编程技术网

如何使用try/catch检查数字是否在1-3范围内?c# /*Propmt饮料用户*/ 而(!bool_有效) { bool_valid=true; 控制台。WriteLine(“请选择一种饮料;按1表示可乐,按2表示雪碧,按3表示Prpper医生”); 尝试 { int_bvg_type=Convert.ToInt32(Console.ReadLine()); (int_bvg_型>0)和&(int_bvg_型0)和&(int_bvg_type0)和&(int_bvg_type0)和&(int_bvg_type0&&int_bvg_type0和int_bvg_type0&&int_bvg_type0和int_bvg_type0)和&(int_bvg_型0)和&(int_bvg_型

如何使用try/catch检查数字是否在1-3范围内?c# /*Propmt饮料用户*/ 而(!bool_有效) { bool_valid=true; 控制台。WriteLine(“请选择一种饮料;按1表示可乐,按2表示雪碧,按3表示Prpper医生”); 尝试 { int_bvg_type=Convert.ToInt32(Console.ReadLine()); (int_bvg_型>0)和&(int_bvg_型0)和&(int_bvg_type0)和&(int_bvg_type0)和&(int_bvg_type0&&int_bvg_type0和int_bvg_type0&&int_bvg_type0和int_bvg_type0)和&(int_bvg_型0)和&(int_bvg_型,c#,C#,我需要确保一个数字输入,作为一个变量,在1和3之间,并且想知道如何使用C和Try/Catch来实现它。我试过(int_bvg_type>0)和&(int_bvg_type0)和&(int_bvg_type0)和&(int_bvg_type0&&int_bvg_type0和int_bvg_type0&&int_bvg_type0和int_bvg_type0)和&(int_bvg_型0)和&(int_bvg_型

我需要确保一个数字输入,作为一个变量,在1和3之间,并且想知道如何使用C和
Try/Catch
来实现它。我试过
(int_bvg_type>0)和&(int_bvg_type<4)。。。但是我得到一个错误,说我不能用它作为一个声明。有人能解释一下如何使用
Try/Catch
检查数字是否在1和3之间吗?您需要一个简单的if语句。而不是
Try
/
Catch

        /*Propmt user for beverages*/
        while (!bool_valid)
        {
            bool_valid = true;
            Console.WriteLine("Plesae Choose a Drink; Press 1 for Coke, Press 2 for Sprite, Press 3 for Dr.Prpper");
            try
            {
                int_bvg_type = Convert.ToInt32(Console.ReadLine());
                (int_bvg_type > 0) && (int_bvg_type < 4);
            }
            catch
            {
                Console.WriteLine("PLease enter a Number between 1 and 3");
                bool_valid = false;
            }
        }
并捕获您的
格式异常

if(!(beverageType > 0 && beverageType < 4))
{
   throw new FormatException("Please enter a Number between 1 and 3");
}

您需要一个简单的if语句。而不是
try
/
catch

        /*Propmt user for beverages*/
        while (!bool_valid)
        {
            bool_valid = true;
            Console.WriteLine("Plesae Choose a Drink; Press 1 for Coke, Press 2 for Sprite, Press 3 for Dr.Prpper");
            try
            {
                int_bvg_type = Convert.ToInt32(Console.ReadLine());
                (int_bvg_type > 0) && (int_bvg_type < 4);
            }
            catch
            {
                Console.WriteLine("PLease enter a Number between 1 and 3");
                bool_valid = false;
            }
        }
并捕获您的
格式异常

if(!(beverageType > 0 && beverageType < 4))
{
   throw new FormatException("Please enter a Number between 1 and 3");
}

您不需要try/catch语句

catch(FormatException ex) 
{ 
    Console.WriteLine(ex.Message);
}
bool validInput=false;
而(!validInput)
{
Console.WriteLine(“请选择一种饮料;按1表示可乐,按2表示雪碧,按3表示普勒博士”);
int_bvg_type=int.Parse(Console.ReadLine());
if((int_bvg_type>0)和&(int_bvg_type<4))
validInput=true;
}

您还可以查看是否有人输入了非数字字符。

您不需要try/catch语句

catch(FormatException ex) 
{ 
    Console.WriteLine(ex.Message);
}
bool validInput=false;
而(!validInput)
{
Console.WriteLine(“请选择一种饮料;按1表示可乐,按2表示雪碧,按3表示普勒博士”);
int_bvg_type=int.Parse(Console.ReadLine());
if((int_bvg_type>0)和&(int_bvg_type<4))
validInput=true;
}

您还可以查看是否有人输入了非数字字符。

Try catch不是推荐的方法。Try-catch用于异常。只有当您的程序实际引发异常时,它才会起作用

我建议的方法如下:

bool validInput = false;

while (!validInput)
{
    Console.WriteLine("Please choose a Drink; Press 1 for Coke, Press 2 for Sprite, Press 3 for Dr.Prpper");

    int_bvg_type = int.Parse(Console.ReadLine());

    if ((int_bvg_type > 0) && (int_bvg_type < 4))
        validInput = true;
}
if(!(int_bvg_type>0&&int_bvg_type<4))
{
Console.WriteLine(“请输入一个介于1和3之间的数字”);
}
如果你仍然想通过try-catch来实现,那么这就可以了。但坦率地说,这只是愚蠢的代码:

if(!(int_bvg_type > 0 && int_bvg_type < 4))
{
   Console.WriteLine("PLease enter a Number between 1 and 3");
}
/*Propmt饮料用户*/
而(!bool_有效)
{
bool_valid=true;
控制台。WriteLine(“请选择一种饮料;按1表示可乐,按2表示雪碧,按3表示Prpper医生”);
尝试
{
int_bvg_type=Convert.ToInt32(Console.ReadLine());
if(!(int_bvg_type>0和int_bvg_type<4)){
抛出新异常();
}
}
抓住
{
Console.WriteLine(“请输入一个介于1和3之间的数字”);
bool_valid=false;
}
}

不推荐使用Try catch。Try-catch用于异常。只有当您的程序实际引发异常时,它才会起作用

我建议的方法如下:

bool validInput = false;

while (!validInput)
{
    Console.WriteLine("Please choose a Drink; Press 1 for Coke, Press 2 for Sprite, Press 3 for Dr.Prpper");

    int_bvg_type = int.Parse(Console.ReadLine());

    if ((int_bvg_type > 0) && (int_bvg_type < 4))
        validInput = true;
}
if(!(int_bvg_type>0&&int_bvg_type<4))
{
Console.WriteLine(“请输入一个介于1和3之间的数字”);
}
如果你仍然想通过try-catch来实现,那么这就可以了。但坦率地说,这只是愚蠢的代码:

if(!(int_bvg_type > 0 && int_bvg_type < 4))
{
   Console.WriteLine("PLease enter a Number between 1 and 3");
}
/*Propmt饮料用户*/
而(!bool_有效)
{
bool_valid=true;
控制台。WriteLine(“请选择一种饮料;按1表示可乐,按2表示雪碧,按3表示Prpper医生”);
尝试
{
int_bvg_type=Convert.ToInt32(Console.ReadLine());
if(!(int_bvg_type>0和int_bvg_type<4)){
抛出新异常();
}
}
抓住
{
Console.WriteLine(“请输入一个介于1和3之间的数字”);
bool_valid=false;
}
}

我可以推荐以下结构:

    /*Propmt user for beverages*/
    while (!bool_valid)
    {
        bool_valid = true;
        Console.WriteLine("Plesae Choose a Drink; Press 1 for Coke, Press 2 for Sprite, Press 3 for Dr.Prpper");
        try
        {
            int_bvg_type = Convert.ToInt32(Console.ReadLine());
            if(!(int_bvg_type > 0 && int_bvg_type < 4)){
                throw new Exception();
            }
        }
        catch
        {
            Console.WriteLine("PLease enter a Number between 1 and 3");
            bool_valid = false;
        }
    }

我是否可以推荐以下结构良好:

    /*Propmt user for beverages*/
    while (!bool_valid)
    {
        bool_valid = true;
        Console.WriteLine("Plesae Choose a Drink; Press 1 for Coke, Press 2 for Sprite, Press 3 for Dr.Prpper");
        try
        {
            int_bvg_type = Convert.ToInt32(Console.ReadLine());
            if(!(int_bvg_type > 0 && int_bvg_type < 4)){
                throw new Exception();
            }
        }
        catch
        {
            Console.WriteLine("PLease enter a Number between 1 and 3");
            bool_valid = false;
        }
    }
(int_bvg_型>0)和&(int_bvg_型<4)

您的行是一个表达式,需要将其指定给变量,或对其求值,就像在if语句中一样

正如大家所说,try-catch不是您需要的东西,只是使用if语句

catch(FormatException ex) 
{ 
    Console.WriteLine(ex.Message);
}
(int_bvg_型>0)和&(int_bvg_型<4)

您的行是一个表达式,需要将其指定给变量,或对其求值,就像在if语句中一样


试捕不是你需要的东西,正如每个人都说的那样,只需使用if语句。

我认为你不想在这里尝试捕捉,if/else听起来是个更好的主意,try/catch只能用于处理您无法控制的异常情况。我可以将try的第二行集成到if/else中,然后在try/catch完成后使用if/else吗?@LukeMcGregor好的,OP可能会捕获FormatException和OverflowException,这可以thrown@ConradFrix这是一个很好的理由在这里捕捉到一些东西,他仍然应该使用if进行实际范围验证,或者可能是开关上的默认值,您需要使用“TryParse”。。。这似乎是一个家庭作业问题。我认为你不想在这里尝试,如果/否则听起来是个更好的主意,try/catch只能用于处理您无法控制的异常情况。我可以将try的第二行集成到if/else中,然后在try/catch完成后使用if/else吗?@LukeMcGregor好的,OP可能会捕获FormatException和OverflowException,这可以thrown@ConradFrix这是一个很好的理由在这里捕捉到一些东西,他仍然应该使用if进行实际范围验证,或者可能是开关上的默认值,您需要使用“TryParse”
catch(FormatException ex) 
{ 
    Console.WriteLine(ex.Message);
}