2017-02-21 7 views
-3

Kann jemand bitte erklären, wie diese Schleife funktioniert? Ich habe Schwierigkeiten zu verstehen, wann es die if-Anweisung ausführen würde und wann es zur while-Schleife zurückkehren würde.Wie funktioniert diese While-Schleife?

// keep buying phones while you still have money 
while (amount < bank_balance) { 
    // buy a new phone! 
    amount = amount + PHONE_PRICE; 

    // can we afford the accessory? 
    if (amount < SPENDING_THRESHOLD) { 
     amount = amount + ACCESSORY_PRICE; 
    } 
} 

Auch warum funktioniert es immer noch ohne eine andere Komponente mit dem if?

Antwort

1

Ihre Frage sagt mir, dass Sie die if und while von sich aus nicht vollständig verstehen und sie zusammen verwenden, macht Sie sogar verwirrt.

if braucht nicht immer else, wenn die Bedingung wahr ist, führen Sie aus und wenn falsch, dann tun Sie nichts.

if(){ //if true doA() and if false, skip it 
    doA(); 
} 


if(){//if true doA() and if false, doB() 
    doA(); 
}else{ 
    doB(); 
} 

Einfaches Beispiel

int count = 10; 

while(count != 0){ 
    count = count - 1; 

    if(count == 8){ 
     count = 0; 
    } 
} 

Prozess:

on while check 10 != 0; 
count is now 10 - 1 
on if check if 9 == 8 // FALSE doesnt do anything 

loop back up to while 

on while check 9 != 0; 
count is now 9 - 1 
on if check if 8 == 8 // TRUE do execute 
count is now 0 

loop back up to while 

on while check 0 != 0; // FALSE 
OUT OF WHILE AND FINISH 

this helps