Код для моего проекта:
import java.util.*;
public class SalaryA
{
public static void main (String[] args)
{
Scanner console = new Scanner(System.in);
int week = 1;
int totalNumberOfWeeks = 5;
double totalCost = 0;
while (week <= totalNumberOfWeeks)
{
double totalNumberOfHours;
double total = 0;
String weekStr = "";
switch (week)
{
case 1 : weekStr = "Week 1"; break;
case 2 : weekStr = "Week 2"; break;
case 3 : weekStr = "Week 3"; break;
case 4 : weekStr = "Week 4"; break;
case 5 : weekStr = "Week 5"; break;
default : weekStr = "Invalid"; break;
}
System.out.println("Input Number of Hours worked for "+weekStr+": ");
totalNumberOfHours = console.nextDouble();
if (totalNumberOfHours <= 40)
{
total = totalNumberOfHours * 10;
} else if (totalNumberOfHours > 40);
{
total = 40 * 10 + (totalNumberOfHours - 40) * 15;
}
totalCost += total;
week ++;
}
System.out.println("Total salary is: "+totalCost+"\n");
}
}
Если я установлю число ниже или равное 40 с примером 15, который должен вернуться как 150, но только как 25. Я настроил какое-то время я oop делаю это 5 раз, и это дает мне 125, но ответ, который он должен дать мне, - 750. Иначе, если утверждение работает совершенно нормально, хотя это то, что смущает меня. Я проверил это со многими числами, и это только влияет ниже 41 (40-1). Все остальное работает нормально.
У кого-нибудь есть исправления для этого?