2016-04-13 3 views
0

In C++ Ich versuche, eine if-Anweisung nach einer switch-Anweisung zu verwenden. Wie führe ich das if aus, weil es es nicht ausführt? Der Schalter läuft gerade.C++ geht von der Ausführung eines Schalters zu einer if-Anweisung danach

Die Ausgabe ist:

492.5 
490 
487.5 
485 
482.5 
480 
477.5 
475 
472.5 
470 
467.5 

die nächste Ausgabe wird durch -2.5 verringert.

#include <iostream> 
#include <cmath> 


using namespace std; 
int main() 
{ 
    double A(5), B(5), C(0), D(7.5), E(20), V(495), F, G, H, I, J, K, L, M, N, O, P; 

    for (int t = 0; t <= 10; t = t + 1) 
    { 
     switch (t) 
     { 
      case 0: 
      F = A + B + C + D - E + V; 
      cout << F << endl; 
      break; 

      case 1: 
      G = A + B + C + D - E + F; 
      cout << G << endl; 
      break; 

      case 2: 
      H = A + B + C + D - E + G; 
      cout << H << endl; 
      break; 

      case 3: 
      I = A + B + C + D - E + H; 
      cout << I << endl; 
      break; 

      case 4: 
      J = A + B + C + D - E + I; 
      cout << J << endl; 
      break; 

      case 5: 
      K = A + B + C + D - E + J; 
      cout << K << endl; 
      break; 

      case 6: 
      L = A + B + C + D - E + K; 
      cout << L << endl; 
      break; 

      case 7: 
      M = A + B + C + D - E + L; 
      cout << M << endl; 
      break; 

      case 8: 
      N = A + B + C + D - E + M; 
      cout << N << endl; 
      break; 

      case 9: 
      O = A + B + C + D - E + N; 
      cout << O << endl; 
      break; 

      case 10: 
      P = A + B + C + D - E + O; 
      cout << P << endl; 
      break; 

      case 11: 
      if (B = B + 5) 
      { 
       F = A + B + C + D - E + V; 
       G = A + B + C + D - E + F; 
       H = A + B + C + D - E + G; 
       I = A + B + C + D - E + H; 
       J = A + B + C + D - E + I; 
       K = A + B + C + D - E + J; 
       L = A + B + C + D - E + K; 
       M = A + B + C + D - E + L; 
       N = A + B + C + D - E + M; 

       cout << F << endl; 
       cout << G << endl; 
       cout << H << endl; 
       cout << I << endl; 
       cout << J << endl; 
       cout << K << endl; 
       cout << L << endl; 
       cout << M << endl; 
       cout << N << endl; 

      } 
     } 

    } 
    system("pause"); 
} 
+3

'if (B = B + 5) '- Bist du sicher, dass du das meinst? –

+0

Die Kombination einer 'for' -Schleife und eines' switch' auf diese Weise scheint widersprüchlich zu sein. Sie haben vielleicht einfacheren Code, wenn Sie jeden Fall sequentiell buchstabieren, die 'for' -Schleife scheint einfach über jede einzelne der Reihe nach zu iterieren. Hier ist viel los, Einfachheit ist essentiell. – tadman

+0

Wie können Sie all diese alphabetischen Variablen mit einem Buchstaben verfolgen? – SergeyA

Antwort

1

Ihre for Anweisung endet bei t == 10 ..

for (int t = 0; t <= 10; t = t + 1) 

Und Ihre if ist irgendwo in der case von t 11. Sein

...... 
case 10: 
P = A + B + C + D - E + O; 
cout << P << endl; 
break; 
case 11: 
if (B == B + 5) 
{ 
..... 

So heben Sie den for-loop Abbruchbedingung aus 10 bis 11 ...

Und es ist etwas falsch mit Ihrem wenn. auch wenn Sie unten gemeint:

..... 
if(B == B + 5) {  //doing if(B = B + 5) is adding 5 to B and checking whether its not 0 
..... 
+0

Was wäre der Sinn eines solchen 'if'? – SergeyA

+0

um den Wert von 10 zu erhöhen. – Cb173

+1

Wie wäre 'B' gleich' B +5'? "B" ist gleich "B", "B + 5" ist gleich "B + 5". Wenn Sie etwas Geld in Ihrem Portemonnaie haben, können Sie nicht die gleiche Menge an Geld haben, nachdem Sie zusätzliche 5 Dollar eingezahlt haben. – SergeyA

0

es nicht funktioniert, weil Sie einen Wert zuweisen sind anstelle der Prüfung nach B,

ändern Sie diese Zeile:

if (B = B + 5) 

zu

if (B == B + 5) 

sollte es funktionieren :)

+0

Es lief aber ich habe keine Werte zum Ausdrucken bekommen. ist etwas falsch mit Cout Statments. @ Salma – Cb173

+0

Wann wäre '(B == B + 5)' wahr? – drescherjm

+0

wenn es = 5 ist. – Cb173