簡體   English   中英

使用“或”的C#問題

[英]C# issue using “Or”

我在這里要說的是,如果userinput = 12顯示消息"you won a new car" ,但是它不起作用。

錯誤說

“運算符||無法應用於類型和字符串的操作數”。

我只做了2天的C#。

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(" 1 2 or 3");
            String message = Console.ReadLine();
            string userinput = "";
            if (userinput == "1" || "2")
                message = "you won a new car";

恐怕不是那樣的! 采用:

if(userinput == "1" || userinput == "2")

原因是if語句期望的結果是true或false。 使用布爾運算符(||),雙方都必須求值為true或false。 在這種情況下,如果userinput為1,則userinput ==“ 1”將評估為true,否則為false。 獨立的“ 2”不等於“ true”或“ false”,而是等於“ 2”。

您的最后一行需要更改為:

if (userinput == "1" || userinput == "2") 
    message = "you won a new car";

用“ OR”運算符分隔的語句的每個部分都需要能夠評估為true或false。

你需要

if(userinput == "1" || userinput == "2")

訣竅是,或者說一個二進制條件其他必須是真真的。 這是布爾邏輯,不是英語或列表。

隨后,您可以執行以下操作:

message = userinput != 3 ? "you won a new car" : "you lost a new car"

這是一個條件運算符表達式。
https://msdn.microsoft.com/zh-CN/library/ty67wk28.aspx

如果您有多個值,也可以使用Array.IndexOf

例如 如果您要使用OR比較10個值,則可以使用Array.IndexOf來縮短代碼。

string[] array= new string[2];
array[0] = "1";
array[1] = "2";

if( Array.IndexOf(array, userInput) != -1) //-1 means it doesn't exist
{
   message = "you won a new car";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM