C#练习:输入两个数字,并显示他们。如果两个数字都大于10,要求用户重新输入。
刚开始自学C#,书本上有个这样的练习题,下面是我写的:staticvoidMain(string[]args){doublevar1,var2;boolbothofThe...
刚开始自学C#,书本上有个这样的练习题,下面是我写的:
static void Main(string[] args)
{
double var1, var2;
bool bothofThemAreGreaterThan10;
inputNumbers:
Console.WriteLine("Please input a number:");
var1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please input another number:");
var2 = Convert.ToDouble(Console.ReadLine());
bothofThemAreGreaterThan10 = (var1 > 10) & (var2 > 10);
switch (bothofThemAreGreaterThan10)
{
case true:
Console.WriteLine("Both of {0} and {1} are Greater than 10!Please input two numbers again:",var1,var2);
goto inputNumbers;
case false:
Console.WriteLine("You enterd {0} and {1}", var1, var2);
break;
}
Console.ReadKey();
我想问一下还有哪些更好的写法(不知道这样的说法正不正确)。其实我主要想问的是除了goto还有什么方法可以让用户执行重新输入的命令,因为我看书本上说过“goto语句有它们的作用,但也可能使代码陷入混乱,尽量不要使用它”。 展开
static void Main(string[] args)
{
double var1, var2;
bool bothofThemAreGreaterThan10;
inputNumbers:
Console.WriteLine("Please input a number:");
var1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please input another number:");
var2 = Convert.ToDouble(Console.ReadLine());
bothofThemAreGreaterThan10 = (var1 > 10) & (var2 > 10);
switch (bothofThemAreGreaterThan10)
{
case true:
Console.WriteLine("Both of {0} and {1} are Greater than 10!Please input two numbers again:",var1,var2);
goto inputNumbers;
case false:
Console.WriteLine("You enterd {0} and {1}", var1, var2);
break;
}
Console.ReadKey();
我想问一下还有哪些更好的写法(不知道这样的说法正不正确)。其实我主要想问的是除了goto还有什么方法可以让用户执行重新输入的命令,因为我看书本上说过“goto语句有它们的作用,但也可能使代码陷入混乱,尽量不要使用它”。 展开
2个回答
展开全部
goto少用 ,当你在以后的编程中是很少遇到这样的情况的 ,goto一般不要用,
你上面的代码还可以用死循环来做
static void Main(string[] args)
{
double var1, var2;
bool bothofThemAreGreaterThan10;
for(;;)
{
inputNumbers:
Console.WriteLine("Please input a number:");
var1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please input another number:");
var2 = Convert.ToDouble(Console.ReadLine());
bothofThemAreGreaterThan10 = (var1 > 10) & (var2 > 10);
switch (bothofThemAreGreaterThan10)
{
case true:
Console.WriteLine("Both of {0} and {1} are Greater than 10!Please input two numbers again:",var1,var2);break;
case false:
Console.WriteLine("You enterd {0} and {1}", var1, var2);
break;
}
if(inputNumbers===0)
{
//按1终止死循环
break;
}
}
Console.ReadKey();
}
更多追问追答
追问
if(inputNumbers===0)
{
//按1终止死循环
break;
}
这里不太懂。。。提示"当前上下文不存在名称'inputNumbers'"
追答
if(var2 ===0.00)
{
//按1终止死循环
break;
}
没注意你的inputNumbers不是接收输入的变量
展开全部
尽量不要用goto语句,可以用以下代码:
int one, two;
for (; ; )
{
Console.WriteLine("请输入one的值");
one = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入two的值");
two = Convert.ToInt32(Console.ReadLine());
if (one > 10 && two > 10)
Console.WriteLine("值都大于10,请重新输入");
else
{
Console.WriteLine("one={0},two={1}", one, two);
break;
}
}
Console.Read();
int one, two;
for (; ; )
{
Console.WriteLine("请输入one的值");
one = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入two的值");
two = Convert.ToInt32(Console.ReadLine());
if (one > 10 && two > 10)
Console.WriteLine("值都大于10,请重新输入");
else
{
Console.WriteLine("one={0},two={1}", one, two);
break;
}
}
Console.Read();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询