我很笨。
import java.util.Scanner;
public class ATM {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double withdraw = scanner.nextDouble();
double balance = scanner.nextDouble();
int withdraw = 0; int balance;
if (withdraw % 5 == 0 && withdraw<(balance-.5)) {
balance = balance - (withdraw + .5);
System.out.println(balance);
}
else {
System.out.println(balance);
}}}
我正试图使余额被提款金额减去,同时产生$。50。不幸的是,它一直在减去$。50不减不退。提前谢谢。
<<p> 固定代码/strong>import java.util.Scanner;
public class ATM {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double withdraw = scanner.nextDouble();
double balance = scanner.nextDouble();
if (withdraw % 5 == 0 && withdraw<(balance-.5)) {
balance -= (withdraw + .5);
System.out.println(balance);
}
else {
System.out.println(balance);
}}}
算法如下https://stackoverflow.com/a/14387552/1083704
您遇到了同样的问题——复杂表达式中的一个错误,其中包括使用未知类型。您必须做同样的事情来调试您的程序——使用中间变量将联机程序简化为多个简单表达式。然后,您可以逐步调试代码并观察这些中间值。成为一名程序员意味着成为一名黑客,如果你不学习调试,你就不会成为一名黑客。
您在哪里设置撤回变量?我看这里,听起来你给一个没有赋值大于0的变量加了。5。在更复杂的代码中测试的一个真正简单的方法是,在你的代码中设置一个值5,然后在你的平衡方程中使用它,这样你就可以判断问题是出在你的方程上,还是出在撤回变量上,尽管方程看起来很可靠。此外,还可以使用
balance -= (withdraw + .5)
当给出的信息很少时,调试代码是相当困难的;但我最好的猜测是一个初始化错误-其中withdraw没有被正确初始化,只是在我认为是其默认值,0
但是为了确定,我们需要在打印语句之前知道withdraw等于什么。你能不能在加余额之前加一条print语句,像这样:
System.out.println(withdraw);
balance -= (withdraw + .5);
System.out.println(balance);
然后看看withdraw在运行时是否> 0 ?如果没有;在计算余额之前,检查它是否设置为您的提款值。
最好是发布你的完整代码片段,这样我们就可以看到自己了。
注意:A -= b是A = A - b的缩写