C#If语句,多个条件

时间:2015-03-27 17:04:48

标签: c# operators

我正在用C#创建一个平均程序,以确保我得到数组。

我要做的是询问用户他们是想要平均整数还是非整数。我认为If语句是合适的。

但问题是,我不知道什么操作符用于MULTIPLE条件,我认为最好通过查看代码来解释。 (即使我现在感到困惑D:)

Console.WriteLine("\n Do you want to average whole numbers, or non-whole numbers? \n");

        if (Console.ReadLine() == "whole numbers" && Console.ReadLine() == "Whole numbers")
        {

            Console.WriteLine("You chose whole numbers.");

        }

我的困惑发生在“条件”&& “条件2”位。我不知道&&是正确的运算符,C#当然不这么认为!

我查看了C#MSDN运营商列表,但无法真正理解使用哪一个......

PS:我正在做多种情况的全部原因是因为大写字母ETC,如果你们中的任何一个知道如何通过一种方式来解决这种问题而忽视大写和其他容易出错的用户蜱,那么请告诉我:D

2 个答案:

答案 0 :(得分:1)

Console.ReadLine从控制台读取输入。当用户按Enter键时,它返回一个字符串。在您的代码中,如果第一个条件为真,它将向用户请求两次输入内容。所以,另一个是冗余的。因为你使用了&&运算符,它是条件AND运算符,但你必须使用条件OR语句(||)。所以,你有两个选择:

在第一种情况下,您可以检查尽可能多的条件。但当然这些都是多余的。您可以将输入的字符串与whole numbers不敏感地与第二种方法进行比较:

 if (string.Equals(Console.ReadLine(), "whole numbers", StringComparison.CurrentCultureIgnoreCase))
 {
       Console.WriteLine("You chose whole numbers.");
 }

答案 1 :(得分:0)

可以考虑使用String.ToLower()方法将字符串转换为小写,而不是测试大小写中的每个变体。基本上,通过调用此方法,用于调用方法的字符串将转换为全部小写字母。通过使用它,您可以通过大写来减少程序失败。

示例:

string UserDecision = (Console.ReadLine()).ToLower();

if(UserDecision == "whole numbers")
{ // perform task }

在我的示例中,我使用Console.ReadLine()来获取用户的输入,然后在将其存储到变量中之前立即将其转换为小写。这样可以更轻松地比较字符串。

在哪个运营商使用的情况下:

|| is the OR operator (ONLY ONE condition must be true)
&& is the AND operator (BOTH conditions must be true)