即使条件不成立,为什么我的while循环仍执行?

时间:2019-02-03 16:20:15

标签: c#

我正在编写一个简单程序,也将摄氏温度转换为华氏温度。要选择是否要将摄氏温度转换为华氏温度,或者相反,请在控制台中输入1或2。因此,我编写了一个while循环,直到您在控制台中输入1或2为止,我都希望执行该循环。相反,不管输入是否正确,循环都会继续。

int x, y, method;
Console.WriteLine("Ange '1' för C to F. Ange '2' för F to C");
method = int.Parse(Console.ReadLine());

while (method != 1 || method != 2)
{
    Console.WriteLine("Ingen giltig metod valdes, välj giltid metod (1, 2)");
    method = int.Parse(Console.ReadLine());
}
if (method == 1 || method == 2)
{
    Console.WriteLine("Ange temperatur som motsavarar metoden");
    x = int.Parse(Console.ReadLine());

    if (method == 1)
    {
        y = x * 9 / 5 + 32;
        Console.WriteLine("Temperaturen {0}C blir {1}F", x, y);
        Console.Read();
    }
    else if (method == 2)
    {
        y = (x - 32) * 5 / 9;
        Console.WriteLine("Temperaturen {0}F blir {1}C", x, y);
        Console.Read();
    }
}          

我希望while循环也可以执行直到值是1或2。当变量“方法”等于1或2时,我希望下面的if语句运行。不管输入什么,都不会继续执行while循环。

2 个答案:

答案 0 :(得分:0)

如果将1写入控制台,则条件method != 1 || method != 2可以读取为1 != 1 || 1 != 2false || true或仅读取true

您需要将条件更改为while(method != 1 && method != 2),并可以读为method is not 1 AND method is not 2

答案 1 :(得分:0)

您需要and而不是or这些条件:

while (method != 1 && method != 2)

为了进一步开发,请使用单词while来代替您的要求,而不是:

I expect the while loop too execute until the value is either 1 or 2

你应该对自己说

I expect the loop to execute while value is not equal to 1 and is not equal to 2