2016-10-17 3 views
-6

So scheint es, als wäre 'i' so ziemlich der universelle Zähler in C++. Es scheint so, als würden die Leute in jeder for-Schleife "i" neu initialisieren. Ich muss fragen, warum initiieren sie 'ich' nicht global? 'Ich' müsste immer noch in jeder Schleife neu definiert werden, deshalb sehe ich nicht, warum es irgendeine Verwirrung geben würde.Warum initiieren Leute nicht global?

Es scheint wie folgt aus:

#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; 
} 

ist leichter zu lesen und schneller zu schreiben als:

#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

Wie ist "Ich muss fragen, warum initiieren sie nicht 'ich' global?" keine Frage? – iNeedToMakeBetterQuestions

+3

Es ist eine Frage der Meinung, kein Problem, zumindest, haben Sie einen großen Namen – Treycos

+3

definiert 'i' außerhalb der Schleife kann zufällige Verwendung von' i', die wir nicht wollen. Initialize i in jeder Schleife zeigt unsere Absicht, dass es ein Index ist, um diese Schleife zu durchlaufen. – Danh

Antwort

10

Ausgezeichnete Idee!

Hier ist ein Programm, das druckt "hellohello" fünf Mal: ​​

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"); 
    } 
} 

Oder ... nicht wahr? (Omenhafte Orgelmusik spielt. Die Krähen krähen. Sirenen in der Ferne.)

+3

Wenn jemand es live sehen möchte: https://ideone.com/UiWgHP –

Verwandte Themen