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

 Respuesta aceptada

KSSV
KSSV el 15 de Mzo. de 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)

Más respuestas (1)

Dyuman Joshi
Dyuman Joshi el 15 de Mzo. de 2023
Editada: Dyuman Joshi el 15 de Mzo. de 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 comentarios

Waqar
Waqar el 15 de Mzo. de 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 el 15 de Mzo. de 2023
Editada: Dyuman Joshi el 15 de Mzo. de 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 el 15 de Mzo. de 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 el 15 de Mzo. de 2023
Editada: Dyuman Joshi el 15 de Mzo. de 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 el 15 de Mzo. de 2023
Worked! Thanks a lot!
Dyuman Joshi
Dyuman Joshi el 15 de Mzo. de 2023
You are welcome!

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Productos

Versión

R2022b

Etiquetas

Preguntada:

el 15 de Mzo. de 2023

Comentada:

el 15 de Mzo. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by