2017-06-10 269 views
0

我有這段代碼可以生成素數列表。如果沒有花括號

<script> 
    var num = prompt("enter limit") 

    for(i = 2; i < num; i++) 
    { 
     if((i % 2 == 0 || i % 3 == 0)) 
      continue; 

     document.write(i + " is a PRIME") 
    } 
</script> 

我的問題是:爲什麼下面的代碼不能運行;在if語句中添加花括號。

<script> 
    var num = prompt("enter limit") 

    for(i =2; i < num; i++) 
    { 
     if((i % 2 == 0 || i % 3 == 0)) 
     { 
      continue; 
      document.write(i + " is a PRIME") 
     } 
    } 
</script> 
+3

歡迎來到Stackoverflow @doctorWeird。當您提出問題時,請縮進您的代碼。 – csblo

回答

1

你的解釋有點不對。正確的解釋將是如下

if((i % 2 == 0 || i % 3 == 0)) { 
    continue; 
} 
document.write(i + " is a PRIME") 
1

因爲if時沒有大括號,在if語句執行後,只有代碼,因此我假設你想continue裏面只有你if聲明。爲了修復您的代碼,您需要在if條件之外取出document.write聲明。

var num = prompt("enter limit") 

for (i = 2; i < num; i++) { 
    if ((i % 2 == 0 || i % 3 == 0)) { 
    continue; 
    } 

    document.write(i + " is a PRIME"); 
} 

如果你寫你的if聲明像

if(YOUR_CONDITION_HERE) 
    continue; //only this will be considered in the `if` statement 

但是,如果你把它寫成

if(YOUR_CONDITION_HERE) { 
    continue; //this will be considered inside the if statement and also other code which is inside the curly braces. 
} 
2

if語句使連接到它有條件的一個聲明在它測試的條件下。在你的情況下,一個聲明是continue

當您使用大括號時,您正在將一條語句附加到if a 塊語句,它是將其他語句組合在一起的語句。

你的原代碼,正確*縮進是:

var num = prompt("enter limit") 

for (i = 2; i < num; i++) { 
    if ((i % 2 == 0 || i % 3 == 0)) 
     continue; 
    document.write(i + " is a PRIME") 
} 

同樣,你可以看到,只有continue語句連接到if

如果你想使用塊語句,continue是你會把它保留了相同的意思:

var num = prompt("enter limit") 

for (i = 2; i < num; i++) { 
    if ((i % 2 == 0 || i % 3 == 0)) { 
     continue; 
    } 
    document.write(i + " is a PRIME") 
} 

* (有很多的「正確」的方法來縮進。代碼,但你確實需要使用它們的一個,你在你的問題沒有,如果你想要的代碼是明確的)

1

您的代碼不會運行。它只是不會產生任何輸出。讓我們來看看相關的代碼:

if((i % 2 == 0 || i % 3 == 0)) 
{ 
    continue; 
    document.write(i + " is a PRIME") 
} 

如果i不符合條件的要求,則執行代碼不花括號之間輸入代碼塊。對這種情況足夠簡單的解釋。但是當它進入代碼塊,它遇到的第一個說法是:

continue; 

這導致環繼續在不考慮代碼塊中的任何進一步的陳述。這就是爲什麼放置花括號的原因,因爲你沒有輸出。

正如其他人所指出的,你應該只是單純的消除您的代碼這些特定的花括號中所示的第一個例子。