提问人:valeria 提问时间:9/24/2023 最后编辑:valeria 更新时间:9/24/2023 访问量:66
如何使这个 C# 程序不断循环,直到用户输入整数?
How do make this C# program keep looping until the user has entered an integer?
问:
我希望程序不断要求用户输入一个数字,直到他们最终使用正确的数据类型,而不仅仅是退出程序。这就是我写的。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test1
{
class Program
{
static void Main(string[] args)
{
//declare and initialize variables
int a = 0;
int b = 0;
int area = 0;
string read;
do {
try
{
//input data solicited
Console.WriteLine("Rectangle height: ");
read = Console.ReadLine();
a = int.Parse(line);
Console.WriteLine("Rectangle width: ");
read = Console.ReadLine();
b = int.Parse(line);
//operation
area = a * b;
//print result
Console.WriteLine("The area of the rectangle is: " + area + " cm²");
}
catch (Exception e)
{
Console.WriteLine("ERROR. Wrong data type.");
}
}while (e);
}
}
}
我尝试使用布尔值作为随机猜测,使 do-while 循环继续进行,直到用户成功输入整数,但这也没有用。你在底部看到的也是一个疯狂的猜测。while (e);
Console.WriteLine("The area of the rectangle is: " + area + " cm²");
cont = false;
}
catch (Exception e)
{
Console.WriteLine("ERROR. Ingresa un numero entero.");
cont = false;
}
}while (cont);
我不能为此使用 if 语句。
答:
1赞
hzmstr
9/24/2023
#1
有两种方法可以让它循环直到数字。
一种方法是创建一个以 false 开头的布尔值,然后循环直到布尔值为 true,所以如果成功,则不会继续循环。
另一种方法是创建一个 but with on end of stack。do {} while (true)
break
try
由于代码到达末尾(是或),因此需要代码才能正常工作。break
isValid = true
如果你愿意,你可以用变量类型检查替换 try {},如果它是一个数字,那么继续,如果有其他任何内容,继续循环(使用否定条件)。
使用变量
...
static void Main(string[] args)
{
// declare and initialize variables
int a = 0;
int b = 0;
int area = 0;
string read;
bool isValid = false;
while (!isValid) {
try
{
// Input data solicited
Console.WriteLine("Rectangle height: ");
read = Console.ReadLine();
a = int.Parse(read);
Console.WriteLine("Rectangle width: ");
read = Console.ReadLine();
b = int.Parse(read);
//operation
area = a * b;
//print result
Console.WriteLine("The area of the rectangle is: " + area + " cm²");
isValid = true;
}
catch (Exception e)
{
Console.WriteLine("ERROR. Wrong data type, expected number.");
}
};
}
...
使用休息
...
static void Main(string[] args)
{
// declare and initialize variables
int a = 0;
int b = 0;
int area = 0;
string read;
do {
try
{
...
break
}
catch (Exception e)
{
...
}
} while (true);
}
...
此外,中有一个错误,没有行 var。与变量 b 相同。a = int.Parse(line)
评论
if
while (true)
break
try
catch
catch
break