2017-12-14 3 views
-1

Ich habe diese Funktion, während überprüft für die richtige Eingabe, die zwischen 1-6 sein muss, aber wenn ich diese Funktion aufrufen, überspringt es einfach alle getch und alle putchar. Was mache ich falsch?Getch wird in einer Weile Schleife übersprungen

int firstNum = 0; 
    int secondNum = 0; 
    int thirdNum = 0; 
    int fourthNum = 0; 
    int counter = 0; 
    int counterMiss = 0; 
    int counterInPlace = 0; 
    int condition = 1; 
    while(firstNum<0||firstNum>6||secondNum<0||firstNum>6||secondNum<0||secondNum>6||thirdNum<0||thirdNum>6||fourthNum<0||fourthNum>6) //loop that checks for input correct 
    { 
     if(counter>0) 
     { 
      printf("enter ONLY numbers beween 1-6\n"); //if there were any incorrect input it will trigger 
     } 
     firstNum=getch(); 
     putchar(firstNum); 
     secondNum=getch(); 
     putchar(secondNum); 
     thirdNum=getch(); 
     putchar(thirdNum); 
     fourthNum=getch(); 
     putchar(fourthNum); 
     firstNum-=48; 
     secondNum-=48; 
     thirdNum-=48; 
     fourthNum-=48; 
     counter++; 
} 

Antwort

0

Wenn Sie eine Anzahl identischer Variablen verwenden möchten, verwenden Sie ein Array, keine separaten Skalarvariablen. Separate Variablen wie diese sehen hässlich aus und werden nicht skaliert.

Außerdem initialisieren Sie die Variablen auf Null und testen dann, ob sie kleiner als null oder größer als sechs sind. Sie sind nicht, also läuft Ihre Schleife nicht.