import java.util.Scanner;
public class bankcounter {
public static void main(String []args) {
int numchecks;
double totalfeeforchecks;
double totalfee;
double totalbasecharge;
double bankfee;
Scanner in = new Scanner(System.in);
System.out.printf("Enter in the amount of checks you wish to use: ");
numchecks = in.nextInt();
totalbasecharge = 20.00;
bankfee = 10.00;
totalfeeforchecks = 0;
if(numchecks > 0 && numchecks < 20)
{
totalfeeforchecks += (numchecks * .10);
}
else
{
totalfeeforchecks += (19 * .10);
numchecks -= 19;
}
if(numchecks > 0 && numchecks <= 20)
{
totalfeeforchecks += (numchecks * .08);
}
else
{
totalfeeforchecks += (20 * .08);
numchecks -= 20;
}
if(numchecks > 0 && numchecks <= 20)
{
totalfeeforchecks += (numchecks * .06);
}
else
{
totalfeeforchecks += (20 * .06);
numchecks -= 20;
}
if(numchecks > 0 && numchecks <= 20)
{
totalfeeforchecks += (20 * .04);
numchecks -= 20;
}
else
{
totalfeeforchecks += (numchecks * .04);
}
totalfee = totalfeeforchecks + totalbasecharge + bankfee;
System.out.printf("Based on our check fee schedule: .10 cents for less than 20 checks :: .08 cents for 20-39 checks :: .06 cents for 40 to 59 checks :: .04 cents each for 60 or more checks\n\nYour charges are as follows: \nTotal fee = %.2f \n\tTotal base charge = \t%.2f\n\tTotal bank fee = \t%.2f\n\tTotal fee for checks = \t%.2f", totalfee, totalbasecharge, bankfee, totalfeeforchecks);
Итак, если я ввожу 9 для numchecks, общая комиссия за проверку должна быть только 0,90, а не 2.96. Являются ли мои заявления if неработоспособными? Я думал, что если я поставлю 9 для numchecks, это должно быть выполнено только после первого условия, так как я вложил остальные из них ... помочь?Я получаю совершенно неожиданный результат от if-statement?
Почему у вас есть отступы так, как они есть? – immibis
Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что он может быть тривиально отлажен, пройдя через него с помощью отладчика. –
Вы сделали ** не ** гнездовые выражения 'if'. –