DEV Community

Madalina Pastiu
Madalina Pastiu

Posted on

Student's Final Grade

Instructions:

Create a function finalGrade, which calculates the final grade of a student depending on two parameters: a grade for the exam and a number of completed projects.

This function should take two arguments: exam - grade for exam (from 0 to 100); projects - number of completed projects (from 0 and above);

This function should return a number (final grade). There are four types of final grades:

100, if a grade for the exam is more than 90 or if a number of completed projects more than 10.
90, if a grade for the exam is more than 75 and if a number of completed projects is minimum 5.
75, if a grade for the exam is more than 50 and if a number of completed projects is minimum 2.
0, in other cases

Examples(Inputs-->Output):
100, 12 --> 100
99, 0 --> 100
10, 15 --> 100

85, 5 --> 90

55, 3 --> 75

55, 0 --> 0
20, 2 --> 0

Thoughts:

1.I use the if/else statement to determine the return of the final grade function of different conditions.
2.Inside the if/else statement I use short circuit || and && based on the requirements from the instructions.

Solution:

function finalGrade (exam, projects) {
  if(exam > 90 || projects > 10) return 100;
  if(exam > 75 && projects >= 5) return 90;
  if(exam > 50 && projects >= 2) return 75;
  return 0;
}
Enter fullscreen mode Exit fullscreen mode

This is a CodeWars Challenge of 8kyu Rank

Top comments (2)

Collapse
 
dotallio profile image
Dotallio

Love how you broke down the logic before coding. Did you mean to use single '&' or was it supposed to be '&&' for logical AND?

Collapse
 
maddiepst profile image
Madalina Pastiu

Thanks so much! I'm glad you liked the breakdown. Great catch—yes, I actually meant to use && for logical AND. Appreciate you pointing that out! 🙌