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语句有它们的作用,但也可能使代码陷入混乱,尽量不要使用它”。
展开
 我来答
SouDous
2015-09-29 · TA获得超过106个赞
知道小有建树答主
回答量:223
采纳率:100%
帮助的人:230万
展开全部

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不是接收输入的变量
尘雨洛烟
推荐于2016-04-09 · TA获得超过6203个赞
知道大有可为答主
回答量:3967
采纳率:79%
帮助的人:1009万
展开全部
尽量不要用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();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式