2015-07-11 52 views
1

我想創建一個隨機選擇製造商。我希望我的程序選擇一個隨機數,然後將其應用於if。這樣的 -使用隨機制作決策

Random random = new Random(); 
random.next(0, 10).ToString()); 
if (random == 1) 
{ 
messagebox.show("Good Joke") 
} 
else if(random == 2) 
{ 
messagebox.show("Terrible Joke") 
} 

等等

可能有人幫助,請。

+0

首先使用靜態字段作爲隨機實例。其次,您可以在每個案例代表結果的情況下使用switch語句。 Tbh你不清楚你的問題是什麼。 – Bauss

+0

我想要做的是挑一個隨機數。然後基於隨機數我想讓if/else語句顯示某個消息框。 – Sachin

+1

總是避免靜態字段。 –

回答

1

這只是初始化Random,並調用Next方法的一系列數字。

原始代碼問題:

  1. 您使用next而不是NextC#是區分大小寫的。
  2. 您不存儲Next操作的結果。
  3. ToString是多餘的,不需要投到string

代碼:

var random = new Random(); 
int number = random.Next(0, 10); 

// If you gonna use alot of conditions like this, a better solution will be to use: switch 
if (number == 1) 
{ 
    // Do Something 
} 
else if (number == 2) 
{ 
    // Do Something else 
} 

.NET Fiddle Link

+0

謝謝。它工作正常,比我在其他網站上看到的其他一些方法更容易。 – Sachin

+0

@Sachin,Bauss給了你一個很好的例子,特別是第二個用'Dictionary',如果你開始弄糊塗了,否則我會建議你用Bauss第二個例子。無論如何隨時UpVote \接受幫助你的答案。 –

0

你得random.Next的輸出存儲在這樣的變量。

Random random = new Random(); 
var val = random.Next(0, 10); 
if (val == 1) 
{ 
    MessageBox.Show("Good Joke"); 
} 
else if(val == 2) 
{ 
    MessageBox.Show("Terrible Joke"); 
} 
1

有幾種方法可以完成。這裏有三個。

第一種方法是創建一個消息數組。

string[] messages = new string[] 
{ 
    "Good Joke", 
    "Terrible Joke" 
}; 
// ... 
MessageBox.Show(messages[random.Next(messages.Length)]); 

第二種方法是使用字典,這樣可以在運行時輕鬆地添加/刪除條目。確保鍵匹配索引。

Dictionary<int,string> messages = new Dictionary<int,string>() 
{ 
    { 0, "Good Joke" } 
    { 1, "Terrible Joke" } 
}; 
// ... 
MessageBox.Show(messages[random.Next(messages.Count)]); 

最後你可以使用switch語句。

string msg = string.Empty; 
switch (random.Next(2)) // The amount of cases ... 
{ 
    case 0: msg = "Good Joke"; break; 
    case 1: msg = "Terrible Joke"; break; 
} 
MessageBox.Show(msg);