Can't run my 'if, elseif, else' code

score= randi(100);
if score < 20
grade= 'D';
print grade
elseif score < 40
grade= 'C';
print grade
elseif score < 60
grade= 'B';
print grade
elseif score < 80
grade= 'B+';
print grade
else
grade= 'A';
print grade
end
i tried to run a basic if else loop but no matter what score i input in the command wndow, my answer is always 'A'.

 Akzeptierte Antwort

KSSV
KSSV am 15 Mär. 2023

0 Stimmen

score= randi(100);
if score < 20
grade = 'D';
elseif score < 40
grade= 'C';
elseif score < 60
grade= 'B';
elseif score < 80
grade= 'B+';
else
grade= 'A';
end
disp(grade)

Weitere Antworten (1)

Dyuman Joshi
Dyuman Joshi am 15 Mär. 2023
Bearbeitet: Dyuman Joshi am 15 Mär. 2023

1 Stimme

if-else is not a loop, they are conditional statements.
If you want to print/display something, use sprintf or fprintf or disp. However, if you want see the value of a variable, type the variable name without using semi colon
score= randi(100)
score = 52
if score < 20
grade= 'D';
elseif score < 40
grade= 'C';
elseif score < 60
grade= 'B';
elseif score < 80
grade= 'B+';
else
grade= 'A';
end
grade
grade = 'B'

6 Kommentare

Waqar
Waqar am 15 Mär. 2023
Hi. Thank you for your response. However, I still couldn't run the code. On the command window when I assign a value to the score:
score= 33
the grade output is random:
grade
= 'A'
May I know what am I doing wrong here? Thanks!
Dyuman Joshi
Dyuman Joshi am 15 Mär. 2023
Bearbeitet: Dyuman Joshi am 15 Mär. 2023
Are you running your whole code on command window? or are you running a script?
Variables you define via command window are not accessible to the script.
Also, in a script, when you change the value of any variable, you need to run your script again to update the result.
Waqar
Waqar am 15 Mär. 2023
While running the script, it's working fine. But I wanted to enter values in the command window as input and see if the grades correspond to them
Dyuman Joshi
Dyuman Joshi am 15 Mär. 2023
Bearbeitet: Dyuman Joshi am 15 Mär. 2023
"But I wanted to enter values in the command window as input and see if the grades correspond to them "
As I said above, Variables you define via command window are not accessible to the script.
A better alternative would be to use a function -
%You can call the function directly
fun(25)
ans = 'C'
%or define a variable and use variable as input
score=randi(100)
score = 80
fun(score)
ans = 'A'
%calling the function again with a different value
fun(75)
ans = 'B+'
%change the value of score and call the function again
score=randi(100)
score = 29
fun(score)
ans = 'C'
function grade = fun(score);
if score < 20
grade= 'D';
elseif score < 40
grade= 'C';
elseif score < 60
grade= 'B';
elseif score < 80
grade= 'B+';
else
grade= 'A';
end
end
Waqar
Waqar am 15 Mär. 2023
Worked! Thanks a lot!
Dyuman Joshi
Dyuman Joshi am 15 Mär. 2023
You are welcome!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2022b

Gefragt:

am 15 Mär. 2023

Kommentiert:

am 15 Mär. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by