2016-10-03 66 views
1

我認爲它相當明顯,我試圖完成,但它也很明顯,我是新來的編碼。這是我的代碼,它工作正常,直到它到達「你想運行一個程序嗎?」在這種情況下,它總是像用戶鍵入「是」一樣行事。我是否完全錯誤或只是寫錯了?使用布爾值的問題?

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string mystring = "What is your name?"; 
      Console.WriteLine(mystring); 
      string UserInput = Console.ReadLine(); 
      string Name = UserInput; 
      Console.WriteLine("Hello " + Name); 
      Console.WriteLine("Would you like to run a program?"); 
      bool UserIput2; 
      Console.ReadLine(); 
      bool Yes = true; 
      bool No = false; 
      if (UserIput2 = (true)) Console.WriteLine("What would you like to run? (Type help for a list of valid programs)"); 
      else if (UserIput2 = (false)) Console.WriteLine("Goodbye"); 
      Console.ReadLine(); 
      Console.ReadLine(); 

     } 
    } 
} 
+0

您沒有將'UserIput2'分配給任何東西。您只需閱讀他們的答案,並放棄結果 – Rob

+3

另外,您正在分配'UserIput2 =(true)'不進行比較。所以比較使用'=='。 'UserIput2 == true'或if(UserInput2) – Sherlock

回答

1

試試這個,我在這裏給UserIput2分配輸入,並將其與「yes」或「no」進行比較。您可以將其更改爲相應的

string mystring = "What is your name?"; 
     Console.WriteLine(mystring); 
     string UserInput = Console.ReadLine(); 
     string Name = UserInput; 
     Console.WriteLine("Hello " + Name); 
     Console.WriteLine("Would you like to run a program?"); 
     string UserIput2= Console.ReadLine(); 
     if (UserIput2.ToLower() == "yes") Console.WriteLine("What would you like to run? (Type help for a list of valid programs)"); 
     else if (UserIput2.ToLower() == "no") Console.WriteLine("Goodbye"); 
     Console.ReadLine(); 
     Console.ReadLine(); 
+0

好吧.ToLower允許它是小寫,但不會完全忽略大小寫。我將如何讓它忽略大小寫?即如果有人輸入YES,我仍然希望它讀取它。其次,這是最有效的方法(使用是/否)或布爾更有效? – Anath3ma

-1

boolean類型是二元的。想象一下,這種類型的工作就像一個燈開關。它只能有2個狀態 - 在true和關閉false。使用此數據類型僅用於在兩種可能狀態之間切換。

實例C#:

bool result = (2 > 1); //Will result in true because 2 is great as 1 

bool result = (2 < 1); //Will result in false because 2 is not less as 1 
1

在你現在的代碼,你丟棄用戶輸入:

Console.WriteLine("Would you like to run a program?"); 
bool UserIput2; 
Console.ReadLine(); // <- input is discarded 

相反,你應該分配UserIput2

Console.WriteLine("Would you like to run a program?"); 

// we assume that answer is positive (UserIput2 == true) 
// if and only if user put "yes" in any register ("YES", "Yes", "yes"...)  
bool UserIput2 = String.Equals(
    Console.ReadLine(), 
    "yes", 
    StringComparison.OrdinalIgnoreCase); 

if另一個問題:=分配,不比較

if (UserIput2 = (true)) Console.WriteLine(...); 

手段分配trueUserIput2然後檢查。正確的實施方案是

if (UserIput2) 
    Console.WriteLine("What would you like to run? (Type help for a list of valid programs)"); 
else 
    Console.WriteLine("Goodbye");