2016-10-17 61 views
-6

所以,看起來'我'幾乎是C++中的通用計數器。似乎在每個循環中,人們都會重新初始化'我'。我不得不問,爲什麼他們不全面初始化'我'? '我'仍然必須在每個循環中重新定義,所以我不明白爲什麼會有任何混淆。爲什麼人們不能在全球初始化我?

它似乎是這樣的:

#include <iostream> 
int i=0; 

int main() 
{ 
    for (i=0;i<3;i++) 
    { 
     std::cout << i << "\n"; 
    } 
    for (i=0;i<5;i++) 
    { 
     std::cout << "hello" << "\n"; 
    } 

    return 0; 
} 

比更容易閱讀,並更快地寫:

#include <iostream> 

int main() 
{ 
    for (int i=0;i<3;i++) 
    { 
     std::cout << i << "\n"; 
    } 
    for (int i=0;i<5;i++) 
    { 
     std::cout << "hello" << "\n"; 
    } 

    return 0; 
} 
+0

「我必須問,爲什麼他們不是在全球範圍內初始化'我'?不是問題? – iNeedToMakeBetterQuestions

+3

它是一個意見問題,至少,你沒有問題,你有一個偉大的名字 – Treycos

+3

定義'我'外循環可能會導致偶然使用'我',我們不想。在每個循環中初始化i表明我們的意圖是它是遍歷該循環的索引。 – Danh

回答

10

好主意!

這裏有一個程序,打印 「hellohello」 五次:

int i; 

void print_twice(const std::string& s) 
{ 
    for (i = 0; i < 2; i++) 
    { 
     std::cout << s; 
    } 
    std::cout << std::endl; 
} 

int main() 
{ 
    for (i = 0; i < 5; i++) 
    { 
     print_twice("hello"); 
    } 
} 

或者......不是嗎? (不祥的風琴音樂播放,烏鴉的聲音,遠處的警笛聲)

+3

如果有人希望看到它:https://ideone.com/UiWgHP –

相關問題