2015-04-05 54 views
-6

這段代碼有什麼錯誤請幫忙。它不運行。這段代碼有什麼錯誤請幫忙:

x=o; 
while (x < 10); 
    x++; 

for (i= .2; i =3; i++) 
cout << "i = "; 
cout << i; 
+0

沒有給出編譯時錯誤?代碼看起來正確,但會返回您可能不期望的值 – 2015-04-05 15:08:05

+0

我在哪裏定義了?同樣在for循環中,因爲你沒有大括號,循環將執行cout <<「i =」; n次,而cout << i;將在for循環結束後執行一次。 – sam 2015-04-05 15:22:02

回答

1

讓我們來看看你的代碼中的每個錯誤。

首先

x=o; 

您是不是要找0(零)或可變o或字符'o'
如果是0(零)或'o'(字符)或可變(具有大於或等於10的值),則環路不會由於條件

while (x < 10); 

如果o運行,即使一次是一個變量(它的值小於10),那麼它將是一個無限循環,因爲你在while循環之後留下了一個分號。 如果while循環後沒有分號,則循環將執行,直到條件x < 10返回false。

下一頁

for (i= .2; i =3; i++) 
cout << "i = "; 
cout << i; 

首先,那裏應該是{}這裏,也許你的意思是實際的代碼是

for (i= .2; i =3; i++) 
{ 
cout << "i = "; 
cout << i; 
} 

如果沒有括號{},那麼只有第一行,即是cout << "i = ";將在for循環下執行(除非您更改for循環條件,否則它將是一個無限循環)。

此外,您的意思是否.22(它們是不同的)

接下來,如果i是浮動(或INT),那麼這將是一個無限循環,因爲循環在你的條件是i = 3。它將值3指定爲i並且它將返回true,因此,該循環將是無限循環。

如果條件更改爲類似i == 3(它將迭代0次)或i < 3(它將迭代1次),那麼它將工作。

如果i是一個int,那麼小數點後的所有值將被跳過,最初,i將具有價值0而不是0.2,但它仍然是一個無限循環,除非你改變的條件如前所述。

但是,如果將其更改爲i < 3,那麼它會遍歷3倍(因爲i將獲得價值012

好了,這些都是在你的代碼中的錯誤。現在,代碼可以根據您的初衷不同,但這裏有一些例子循環結束後

int x = 0; 
while (x < 10) 
    x++; 

結果
x將具有值10

下一頁碼

int i; 
for (i = 2 ; i < 3 ; i++) 
    { 
    cout << "i = "; 
    cout << i; 
    } 

輸出

i = 2 
0

刪除 「;」從while條件開始,並且用0不用o初始化x。你的代碼應該是這樣的:

x=0; 
while (x < 10) 
    x++; 

請讓我知道這是否解決了你的問題。

+0

感謝您的幫助... – 2015-04-08 16:35:17

+0

我很高興我能幫上忙。 – Eduard 2015-04-09 19:32:26

0

第一代碼片段運行一個無限循環,因爲存在的「而」在decleration之後分號:

while (x < 10); // <-- this semicolon 

第二個代碼片斷有幾個問題:

  • 失蹤周圍的支架

  • 「停止條件」是轉讓i=3而不是比較:i==3i <= 3

  • i被增加 「1」 它永遠不會是 「3」,而是:1.2,2.2,3.3,......它也將陷入無限循環

這裏是一個選項,以解決它:

for (i= .2; i == 3; i += .2) { // <-- missing surrounding brackets 
    cout << "i = "; 
    cout << i; 
} 
0
  1. X = 0 ('zero')o ('oh')
  2. 你有沒有includ如果不是,則使用std::cout,並在for循環中包含{}括號。但是你想從第二個代碼中獲得什麼?因爲你的i=3永遠不會得到滿足。
0

我在哪裏定義?

在for循環中,由於您沒有大括號(如果我們假設條件是一個錯字,而您實際上打算編寫i <= 3),循環將執行。

cout << "i = "; n times <-- note that it only prints i = i = i = ... 

一旦用於循環結束,

cout << n; will be printed once. 

所以你的最終輸出將是這樣的:

i = i = i = i = .... i = 3 <--3 is the final value 

如果你的for循環實際上有I = 3,那麼它的分配3我每次都會這樣,這將是一個無限循環。

Here是關於流量控制的教程。