My while loop will not stop even when it no longer meets the requirements, how do I fix this?
    3 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Matthew Smyth
 el 19 de Abr. de 2022
  
    
    
    
    
    Respondida: Geoff Hayes
      
      
 el 19 de Abr. de 2022
            I am coding a hangman, im using a while loop in here. The code for that is:
while ~(guessesLeft <= 0) || ~(correctCount == length(guessingWord-1))
    incorrectCount1=0;
    currentNum=0;
    NewGuess=input('Please enter your guess: ','s');
    for i=1:length(Guess)
        if NewGuess==guessingWord(i)
            Guess(i)=NewGuess;
            lettersLeft=lettersLeft-1;
            currentNum=currentNum+1;
            correctCount=correctCount+1;       
        else
            incorrectCount1=incorrectCount1+1;
        end
    end
    if currentNum==0
        fprintf('Your letter is not in the word!\n');
        guessesLeft=guessesLeft-1;
    else
        fprintf('You have made a correct guess!\n');
    end
    disp(Guess);
end
2 comentarios
Respuesta aceptada
  Geoff Hayes
      
      
 el 19 de Abr. de 2022
        while ~(guessesLeft <= 0) || ~(correctCount == length(guessingWord-1))
The loop will continue so long as the user still has guesses left OR hasn't selected the correct letters. I think that this should be an AND else you will have the problem where the user has used up all of their guesses but the other condition is still true. Also, it isn't clear (to me) why you are comparing the correct count with the length of the guessing word less one character. I think that the conditions should be more like 
while guessesLeft > 0 && correctCount != length(guessingWord)
0 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


