confusion while; break; continue.

조회 수: 8 (최근 30일)
Blazhe Grkljanov
Blazhe Grkljanov 2020년 11월 18일
댓글: Blazhe Grkljanov 2020년 11월 18일
Hello everyone, im starting with matlab, and i have a little problem if someone wants to help me it will be nice here is the problem:
A little guessing game works like this: The first player enters a number secret. The second player must guess this number. To do this, he enters a number and then the program tells him if the number to guess is greater or less than the number he suggested. he can keep entering numbers until the secret number is found. In this case, the program displays the number of tries that were required to find the secret number. If the number has not yet been found after 15 attempts, the number to guess is displayed and the program ends. Carry out this program. For interaction with the user, you can use the msgbox functions and inputdlg.
Well my code that im trying is here:
% Clean Up
% Close the opened figures and clear all variables
clear all;
close all;
% Open a dialog box asking the user 1 to put a number
secretnumber=str2double(inputdlg('Enter your secret number','secretnumber'));
%Open a dialog box asking the user 2 to put a number
number1=str2double(inputdlg('Enter your guess','number1'));
%If the number1>secretnumber show a msgbox saying it
while number1>secretnumber
uiwait(msgbox('Your guess is higher than the secret number, try again','modal'));
str2double(inputdlg('Enter your guess','number1'));
if number1<secretnumber
uiwait(msgbox('Your guess is lower than the secret number, try again','modal'));
str2double(inputdlg('Enter your guess','number1'));
break
end
end
here i am for now, i don't understand why when the value of number1 is smaller than the secretnumber; this code won't execute:
if number1<secretnumber
uiwait(msgbox('Your guess is lower than the secret number, try again','modal'));
str2double(inputdlg('Enter your guess','number1'));
break
end
Thanks a lot, if you have any hint for the msgbox to appear when the number1 is the same as the secret number, i'm taking it thanks.
  댓글 수: 1
Blazhe Grkljanov
Blazhe Grkljanov 2020년 11월 18일
% Clean Up
% Close the opened figures and clear all variables
clear all;
close all;
% Open a dialog box asking the user 1 to put a number
secretnumber=str2double(inputdlg('Enter your secret number','secretnumber'));
%Open a dialog box asking the user 2 to put a number
number1=str2double(inputdlg('Enter your guess','number1'));
%If on the first try he got it right
if number1==secretnumber msgbox('good game 1 try')
end
%If the number1>secretnumber show a msgbox saying it
while number1~=secretnumber
% 1st time
if number1>secretnumber
uiwait(msgbox('Your guess is higher than the secret number, try again','modal'));
str2double(inputdlg('Enter your guess','number1'));
end
if number1<secretnumber
uiwait(msgbox('Your guess is lower than the secret number, try again','modal'));
str2double(inputdlg('Enter your guess','number1'));
end
end
I got until here; i don't know how to continue until 15th time, i tried to put msgbox ('you got the number after 1 try') after the last 'if' function in the loop , but whatever number i will put it will show the message box with the text inside so, what should i do to contiue until 15th times ?
Thanks a lot.

댓글을 달려면 로그인하십시오.

채택된 답변

Geoff Hayes
Geoff Hayes 2020년 11월 18일
Blazhe - I think the condition on your while loop is preventing you from entering the body (of the loop) and so preventing the code from checking that the guess is less than the secret number.
while number1>secretnumber
The above should probably be (not equal)
while number1 ~= secretnumber
and then you would need to adjust the code within the body to ensure that you properly handle all four cases: the guess is less than the secret number, the guess is greater than the secret number, the guess is equal to the secret number, and more than 15 guesses have been made.
  댓글 수: 1
Blazhe Grkljanov
Blazhe Grkljanov 2020년 11월 18일
Thanks a lot, im trying to fix it. I changed the condition so it works now. I will try to do the other steps:
Thanks a lot for you quick response
:)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by