gpt4 book ai didi

适合新手的 Java Tip 计算器

转载 作者:行者123 更新时间:2023-12-01 18:32:06 27 4
gpt4 key购买 nike

我希望我在正确的地方发帖。

我对 Java 还很陌生(这意味着这只是我除了“hello world”之外的第三个程序)。

我正在为一项作业开发一个小费计算器。我没有收到这样的“错误”,但分摊账单的方法似乎总是认为每个顾客支付“无穷大”。我的程序分为两个类:tipCalc1 和tipCalc2(当然没有原创性得分)。除了“无穷大”问题之外,程序运行似乎没有任何问题。

这是我到目前为止所拥有的。感谢任何帮助,谢谢。

***TipCalc1 Class:***

import java.util.Scanner;

public class Tipcalc1
{
public static void main(String[] args)
{
System.out.println("Welcome to Tip Calculator! ");
TipCalc2 Calculator = new TipCalc2();
System.out.println("Please enter the bill amount: ");
TipCalc2.calBill();
System.out.println("What percentage would you like to tip?: ");
Calculator.percTip();

}

}


***And the tipCalc2 class which does the dirty work:***

import java.util.Scanner;

public class TipCalc2
{
static double bill;
double tip;
double total;
double split;
double splitPrompt;
double Y;
double N;
double billPerPerson;

static Scanner scan = new Scanner(System.in);
public static void calBill()
{
bill = scan.nextDouble();
}

public void percTip()
{
tip = scan.nextDouble();
if(tip<1)
{
total = bill * tip;
}
else total = bill * (tip/100);
System.out.println("Your total is: " + total);
Split();
}


public void Split()
{
System.out.println("Would you like to split the bill? ");
System.out.println("Enter 1 for YES or 0 for NO: ");

splitPrompt = scan.nextDouble();
if(splitPrompt == 0)
{
System.out.println("Your total is: " + total);
System.out.println("Thankyou. Goodbye.");
System.out.println("End Program");
}
if(splitPrompt == 1)
{
System.out.println("How many ways would you like to split the bill? ");
splitPrompt = scan.nextDouble();
billPerPerson = total / split;
System.out.println("Each person pays: " + billPerPerson);
System.out.println("Thankyou. Goodbye.");
System.out.println("End Program.");

}
else System.out.println("Invalid Entry");
}

}

最佳答案

split 的默认值(因为您尚未使用其他值初始化它)是 0.0,因此,当您这样做时

billPerPerson = total / split;

除以0.0,得到无穷大

注释:

  • 由于您的变量 splitPrompt 是 double 的,并且计算机无法以 100% 的准确度存储实际值,因此您不应该将其与 0.0 进行比较.由于此变量将存储 01 作为输入,因此您可以将其声明为 int,这将是准确的。
  • 尝试遵循 Java 命名约定。对方法/变量使用mixedCase,对类/接口(interface)使用CamelCase
  • 在方法 split() 中,您应该使用 if-else if-else 结构:

    if(splitPrompt == 0) {
    ...
    }
    else if(splitPrompt == 1) {
    ...
    }
    else {
    ...
    }

关于适合新手的 Java Tip 计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23717749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com