2017-07-22 3 views
-1

Le code est le suivant. Je veux qu'il quitte la boucle lorsque vous tapez -1. Ou je voudrais trouver une meilleure solution s'il y en a une.Pourquoi ma boucle for ne fonctionne-t-elle pas?

if (aa == "hours") { 
    std::cout << "Please enter hours below: (Type -1 to stop)" << std::endl; 
    for(x; x > -1; x++) { 
     std::cin >> hours[x]; 
     std::cout << hours[x]; 
    } 
} 
+0

S'il vous plaît ajouter à votre question quel est le comportement que vous voyez et pourquoi ce n'est pas ce que vous attendez. –

Répondre

0

Utilisez un break simple.

if (aa == "hours") 
{ 
    int temp; 
    std::cout << "Please enter hours below: (Type -1 to stop)" << std::endl; 
    for(int x; x > -1; x++) { 

     // Store input in temp 
     std::cin >> temp; 

     // Check if temp is -1 
     if (temp == -1) 
     { 
      break; 
     } 

     // This code is only executed if temp is not -1 
     hours[x] = temp; 
     std::cout << hours[x]; 
    } 
} 
+0

Je vous remercie mais je ne veux pas que mon programme de sortie suffit de revenir sur le principal pour ainsi dire. – midcore

+0

@midcore Tout ce que 'break' fait c'est arrêter la boucle. Votre programme ne sortira pas s'il y a du code après. – stybl

+0

ah d'accord merci beaucoup! :) – midcore