Grade Calculator

Program to calculate grade based on marks

JavaScriptBeginner
JavaScript
// Grade system:
// 90-100: A
// 80-89: B
// 70-79: C
// 60-69: D
// Below 60: F

function calculateGrade(marks) {
    if (marks >= 90 && marks <= 100) {
        return 'A';
    } else if (marks >= 80 && marks < 90) {
        return 'B';
    } else if (marks >= 70 && marks < 80) {
        return 'C';
    } else if (marks >= 60 && marks < 70) {
        return 'D';
    } else if (marks >= 0 && marks < 60) {
        return 'F';
    } else {
        return 'Invalid marks';
    }
}

// Test cases
console.log("95 marks:", calculateGrade(95));
console.log("85 marks:", calculateGrade(85));
console.log("75 marks:", calculateGrade(75));
console.log("65 marks:", calculateGrade(65));
console.log("45 marks:", calculateGrade(45));
console.log("105 marks:", calculateGrade(105));

// Method 2: Using switch with ranges
function calculateGrade2(marks) {
    switch(true) {
        case marks >= 90 && marks <= 100:
            return 'A';
        case marks >= 80 && marks < 90:
            return 'B';
        case marks >= 70 && marks < 80:
            return 'C';
        case marks >= 60 && marks < 70:
            return 'D';
        case marks >= 0 && marks < 60:
            return 'F';
        default:
            return 'Invalid marks';
    }
}

console.log("\nUsing switch:");
console.log("92 marks:", calculateGrade2(92));
console.log("78 marks:", calculateGrade2(78));

Output

95 marks: A
85 marks: B
75 marks: C
65 marks: D
45 marks: F
105 marks: Invalid marks

Using switch:
92 marks: A
78 marks: C

This program demonstrates range-based conditional logic.

Grade System

Common grading scale:

  • A: 90-100 (Excellent)

  • B: 80-89 (Good)

  • C: 70-79 (Average)

  • D: 60-69 (Below Average)

  • F: 0-59 (Fail)

Method 1: If-Else Chain

Checking ranges with AND operator:

javascript
if (marks >= 90 && marks <= 100) {
    return 'A';
} else if (marks >= 80 && marks < 90) {
    return 'B';
}
// ... and so on

Range Checking

  • marks >= 90 && marks <= 100: Inclusive range
  • marks >= 80 && marks < 90: Lower inclusive, upper exclusive

Method 2: Switch with Ranges

Using switch(true) pattern:

javascript
switch(true) {
    case marks >= 90 && marks <= 100:
        return 'A';
    case marks >= 80 && marks < 90:
        return 'B';
    // ...
}

Switch(true) Pattern

  • Evaluates each case as boolean
  • First matching case executes
  • Useful for range checks

Input Validation

Always validate input:

javascript
if (marks < 0 || marks > 100) {
    return 'Invalid marks';
}

Real-world Applications

  • Student grading systems
  • Performance evaluation
  • Score categorization
  • Rating systems

When to Use:

  • If-else: Most common, readable

  • Switch: Multiple ranges, organized