我的新手代码没有减去两个变量



我很笨。

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的缩写

最新更新