2010-10-13 72 views
-4

我嘗試做一個循環時,要麼兩個條件之一的十次..C#做一段時間(兩個條件)

這涉及到瓶子或者糖或鹽,而該人必須隨機挑選了一箱兩瓶。當它被選擇10次時,他/她將停止選擇...它似乎不起作用。

 int sugar = 0; 
     int salt = 0; 

     do 
     bottle1.choose 
     bottle2.choose 
     { 
      if ((bottle1 = 'Sugar') && (bottle2 = 'Sugar')) 
      { 
       Console.Write("Sugar"); 
       Sugar++; 
      } 
      else if (bottle1 = 'Salt') && bottle1 = 'Salt') 
      { 
       Salt++; 
       Console.Write("Salt"); 
      } 
      else 
      { 
       Console.Write("None"); 
      } 
     } 
     while ((Salt < 10) || Sugar < 10); 
+0

http://msdn.microsoft.com/en-us/library/370s1zax.aspx – Gorgen 2010-10-13 11:26:56

+0

請清理問題中的代碼 - 這裏有大量的語法問題,妨礙溝通您的實際邏輯問題。 – annakata 2010-10-13 11:40:24

回答

11

目前,你會繼續,而他們的要麼已選定10次循環。我懷疑你想:

while (Salt < 10 && Sugar < 10) 

說了這麼多,你給的代碼顯然是僞代碼無論如何 - 它不會編譯由於各種原因。如果你可以發佈一個簡短但完整的程序來證明問題,我們可以給予更多信心的答案。同樣,說「這似乎不起作用」就像去看醫生,並期望從「我感覺不舒服」中得到診斷。更多詳細信息請...

+0

你*希望*它的僞代碼... :) – annakata 2010-10-13 11:38:36

+0

這工程... TQ ..我迷惑了||。和(&lt; – Sydney 2010-10-13 12:51:00

2

您在此處聲明saltsuger,但在循環內部使用SaltSugar。他們的屬性是你在其他地方定義的嗎?你確定他們做你期望的事嗎?你有沒有嘗試過使用循環內的變量而不是屬性,所以你的代碼看起來像這樣?

int sugar = 0; 
    int salt = 0; 

    do 
    bottle1.choose 
    bottle2.choose 
    { 
     if ((bottle1 = 'Sugar') && (bottle2 = 'Sugar')) 
     { 
      Console.Write("Sugar"); 
      sugar++; 
     } 
     else if (bottle1 = 'Salt') && bottle1 = 'Salt') 
     { 
      salt++; 
      Console.Write("Salt"); 
     } 
     else 
     { 
      Console.Write("None"); 
     } 
    } 
    while ((salt < 10) || sugar < 10); 
2

你的括號參差不齊您ifwhile聲明,您的變量名不匹配,你bottle.choose語句也必須do-while循環之下,您使用的是賦值運算符=您的條件:

int sugar = 0; 
int salt = 0; 

do { 
    bottle1.choose(); 
    bottle2.choose(); 
    if ((bottle1 == 'Sugar') && (bottle2 == 'Sugar')) 
    { 
     Console.Write("Sugar"); 
     sugar++; 
    } 
    else if ((bottle1 == 'Salt') && (bottle1 == 'Salt')) 
    { 
     salt++; 
     Console.Write("Salt"); 
    } 
    else 
    { 
     Console.Write("None"); 
    } 
} while ((salt < 10) || (sugar < 10)); 
+0

)while((salt <10)||(sugar <10));'to'} while((salt <10)&&(sugar <10)); – JLWarlow 2010-11-08 10:37:42

0

如果我正確理解代碼,那麼兩個瓶子必須具有相同的口味才能進行增量。

第一個錯誤似乎是「鹽」,你兩次檢查,爲「bottle1」的測試條件,測試應該是:

else if (bottle1 = 'Salt') && bottle2 = 'Salt') 
1

我無法從你的問題告訴我們,如果你想如果選擇了鹽或糖,或者如果你想在選擇10件食物時停下來,就停下來。

如果你正在尋找前者,那麼Jon Skeet的答案會爲你做。

如果你正在尋找的是後者,那麼我認爲你正在尋找以下:

while (Salt + Sugar < 10); 
0

你的變量名不匹配,你又可以把條件都鹽和糖的選擇在「while語句」本身。