• 作者: 秒速340 2012年12月1日星期六

    目标:

    让用户输入两个数字,并显示它们,但拒绝接受两个数字都大于10的情况,并要求用户重新输入。

    我自己做的:

    static void Main(string[] args)
    {
    int var1,var2;
    loop :
    Console.WriteLine("请输入一个数字,并按回车键结束。");
    var1 = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("请输入另一个数字,并按回车键结束。");
    var2 = Convert.ToInt32(Console.ReadLine());
    if ((var1 >10)&(var2 >10))
    {
    Console.WriteLine("你输入的数字不正确,请重新输入。");
    goto loop;
    }
    Console.WriteLine("你输入的数字是:{0}和{1}",var1,var2 );
    Console.ReadKey();
    }

    标准答案1:
    static void Main(string[] args)
    {
    bool numbersOK = false;
    double var1, var2;
    var1 = 0;
    var2 = 0;
    while (!numbersOK)
    {
    Console.WriteLine("Give me a number:");
    var1 = Convert.ToDouble(Console .ReadLine ());
    var2 = Convert.ToDouble(Console .ReadLine ());
    if ((var1 > 10) ^ (var2 > 10))
    {
    numbersOK = true;
    }
    else
    {
    if ((var1 <= 10) && (var2 <= 10))
    {
    numbersOK = true;
    }
    else
    {
    Console.WriteLine("Only one number may be greater than 10.");
    }
    }
    }
    Console.WriteLine("You entered {0} and {1}.",var1,var2);
    }

    标准答案2:
    static void Main(string[] args)
    {
    bool numbersOK = false;
    double var1, var2;
    var1 = 0;
    var2 = 0;
    while (!numbersOK)
    {
    Console.WriteLine("Give me a number:");
    var1 = Convert.ToDouble(Console .ReadLine ());

    Console.WriteLine("Give me another number:");
    var2 = Convert.ToDouble(Console .ReadLine ());
    if ((var1 > 10) && (var2 > 10))
    {

    Console.WriteLine("Only one number may be greater than 10.");
    }
    else
    {
    numbersOK = true;
    }
    }
    Console.WriteLine("You entered {0} and {1}.",var1,var2);
    }

    哎,代码相差得挺多的嘛。虽然结果似乎一样。

     

    要注意的地方:
    &运算符:

    对于整型,& 计算操作数的逻辑按位“与”。 对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,结果才为 true。
    && 运算符:

    条件“与”运算符 (&&) 执行其 bool 操作数的逻辑“与”运算,但仅在必要时才计算第二个操作数。
    ^ 运算符:

    二元 ^ 运算符是为整型和 bool 类型预定义的。 对于整型,^ 将计算操作数的按位“异或”。 对于 bool 操作数,^ 将计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true 时,结果才为 true。

    0 评论

  • - 除非注明,本站采用创作共用版权协议:知识共享许可协议 - 但小说和诗词作品采用的是:知识共享许可协议 -
    - Power by Blogger - Template by Johanes Djogan - Modify by miaosu340