【发布时间】:2021-06-19 17:30:02
【问题描述】:
import java.text.DecimalFormat;
import java.util.Scanner;
public class shippingCharges {
public static void main(String[] args) {
double inputWeight, inputDistance;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the weight of the package in Kilograms between 0 - 50 exclusive: ");
inputWeight = sc.nextDouble();
while (inputWeight < 0.0 || inputWeight > 50.0) {
System.out.println("Weight must be between 0 - 50 exclusive. Enter the weight: ");
inputWeight = sc.nextDouble();
}
System.out.println("Enter the distance the package is to be shipped between 10 - 3000 inclusive: ");
inputDistance = sc.nextDouble();
while (inputDistance < 0 || inputDistance > 3000) {
System.out.println("Distance must be between 0 - 3000 exclusive. Enter the distance: ");
inputDistance = sc.nextDouble();
// Calling ShippingCost Method
shippingCost(inputWeight, inputDistance);
}
}
public static void shippingCost(double inputWeight, double inputDistance) {
// Declaring initial variables needed
double inputRate, blocks, total;
// Declaring named constants needed
final double RATE1 = 1.20, RATE2 = 2.20, RATE3 = 3.80, RATE4 = 4.80;
final double W1 = 2, W2 = 6, W3 = 10, W4 = 50;
final int DIS = 200;
Scanner sc = new Scanner(System.in);
DecimalFormat df = new DecimalFormat("0.00");
inputWeight = sc.nextDouble();
inputRate = sc.nextDouble();
inputDistance = sc.nextInt();
// Using an if-else statement to determine the rate of per 200 miles shipped
if (inputWeight <= W1)
inputRate = RATE1;
else if (inputWeight > W1 && W1 <= W2)
inputRate = RATE2;
else if (inputWeight > W2 && W2 <= W3)
inputRate = RATE3;
else if (inputWeight > W3 && W3 <= W4)
inputRate = RATE4;
// Calculating the number of 200 mile blocks using the built-in ceil() method and total
blocks = Math.ceil(inputDistance / DIS);
total = blocks * inputRate;
// Printing the Invoice Summary
System.out.println("\tThe shipping rate is: " + df.format(inputRate) + " per 200-mile shipped. ");
System.out.println("\tThere are " + blocks + " 200-mile blocks in " + inputDistance + "miles. ");
System.out.println("\tTotal = " + blocks + " x " + inputRate + " = " + total);
}
}
我最近在我的一门编程课上遇到了问题。这个问题看起来很简单,但我才刚刚开始。基本上,我试图将我正确创建的 void 方法调用到我的主方法程序中。但是,每次我运行程序时,它都会显示System.out.println(),但是在我到达运输方式后会终止程序。任何帮助都将意义重大,谢谢。
【问题讨论】:
-
您对
shippingCost的调用是inwhile (inputDistance < 0 || inputDistance > 3000) {(不应该是)。 -
你先生是山羊