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'.

 Risposta accettata

KSSV
KSSV il 15 Mar 2023
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)

Più risposte (1)

Dyuman Joshi
Dyuman Joshi il 15 Mar 2023
Modificato: Dyuman Joshi il 15 Mar 2023
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 Commenti

Waqar
Waqar il 15 Mar 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 il 15 Mar 2023
Modificato: Dyuman Joshi il 15 Mar 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 il 15 Mar 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
"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 il 15 Mar 2023
Worked! Thanks a lot!
You are welcome!

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange

Prodotti

Release

R2022b

Richiesto:

il 15 Mar 2023

Commentato:

il 15 Mar 2023

Community Treasure Hunt

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

Start Hunting!

Translated by