[英]C# issue using “Or”
我在這里要說的是,如果userinput = 1
或2
顯示消息"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.