Home > Software design >  I am trying to complete an else if statment in Java but it doesnt work
I am trying to complete an else if statment in Java but it doesnt work

Time:03-21

I want it to print "C" if 'salary' is equal to or greater than 50 but I want it to print "E" if 'salary' is greater than 70. How should I go about doing this? (P.S I am using programiz online java complier) Code:

import java.util.Scanner;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; 

class Main {
  public static void main(String[] args) {
    Scanner myObj = new Scanner(System.in);

    System.out.println("Enter your Name, Student ID and Salary: \n");

    // String input
    String name = myObj.nextLine();

    // Numerical input
    int id = myObj.nextInt();
    int salary = myObj.nextInt();

    // Output input by user
    System.out.println("\nStudent Name: "   name);
    System.out.println("\nStudent ID: "   "IIBT"   id);
    System.out.println("\nDate of Issue: "   java.time.LocalDate.now());
    System.out.println("\nDocument ID: "   salary);

    if(salary>=50) {    
        if(salary>=70) {
             System.out.printIn("E");
             }
        else {
             System.out.println("C");
             }
        
    }

  }
}

CodePudding user response:

You can of course rank in descending order:

    if (salary >= 70) {
        System.out.println("E");
    } else if (salary >= 50) {
        System.out.println("C");
    }

CodePudding user response:

You could put the second if inside the first.
You could also use a switch.
Personally I find it clearer to write if(salary>=70) but there is no functional difference.

if(50<=salary) {    
    if(70<=salary) {
         System.out.println("E");
         }
    else {
         System.out.println("C");
         }
}
  • Related