I finally got my program to compile without any errors and the first half is correct the total pay, retirement deduction and net pay were all displaying 0. I saw from a different post that Java doesn't analyze the logic of your if blocks so I edited my code to have my rate assigned to 0 and my if statement to return rate. I'm now getting the error "unexpected return value". How do I get my program to have the appropriate value depending on the user's input?
import java.util.*;
public class AcmePay {
public static void main(String[] args) throws Exception {
    Scanner keyboard = new Scanner(System.in);
    double hours;
    int shift;
    int plan;
    double rate = 0;
    double overtimePay;
    double paycheck;
    //double retirement;
   // double retirement = paycheck - (paycheck * .03);
    //double netPay = paycheck - retirement;
    System.out.println("How many hours did you work this week?");
    hours = keyboard.nextDouble();
      if ( hours <= 40 )
      {
          paycheck = hours * rate;
      }
      else
      { 
          paycheck = (40 * rate) + ((hours - 40)) * (rate*1.5);
      }
 System.out.println("What shift did you work? 1, 2, or 3?");
    shift = keyboard.nextInt();
    if (shift == 1)
    {
        rate = 17;
        return rate;
    }
    else if (shift == 2)
    {
        rate = 18.50;
        return rate;
    }
    else if (shift == 3)
    {
        rate = 22;
        return rate;
    }
 
     
    