【问题标题】:C# If statement, multiple conditionsC# If 语句,多个条件
【发布时间】:2015-03-27 17:04:48
【问题描述】:

我在 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.");

        }

我的困惑发生在“Condition”&&“Condition2”位。我不知道 && 是否是正确的运算符,C# 肯定不这么认为!

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

P.S:我做多个条件的全部原因是因为大写字母 ETC,如果你们中的任何人知道如何通过忽略上限和其他容易出错的用户刻度来解决这个问题,那么请告诉我:D

【问题讨论】:

  • && 是条件 AND 运算符。如果两个条件都为真,则结果为真。根据您的问题,您需要使用 || (条件或)运算符。

标签: c# operators


【解决方案1】:

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

  • 要么将Console.Readline()结果分配给某个变量并在if语句中使用它,但将&&更改为||
  • 或者使用string.Equals(String, String, StringComparison)重载,判断两个字符串是否相等不区分大小写

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

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

【讨论】:

  • 谢谢伙计,我很困惑:P
【解决方案2】:

与其测试每个大小写变化,不如考虑使用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)

【讨论】:

    猜你喜欢
    • 2015-03-24
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2017-05-06
    • 2014-09-06
    • 2015-01-20
    相关资源
    最近更新 更多