【发布时间】:2015-09-22 19:00:48
【问题描述】:
我是一名初级 Java 程序员。我正在尝试编写一个简单的程序来根据物质的半衰期计算物质在你体内的残留量,以及何时根据药物的服用时间和方式达到平衡(后者不是尚未完成)。
我最初在扫描仪上遇到资源泄漏问题,但我在这里找到了答案。但是,既然我已经修复了扫描仪,我似乎无法将常量双变量初始化为用户输入。扫描仪本身可以工作,并且变量获得输入值,但是 java 一直拒绝它说“DOSE 无法解析为变量”。我什至放了一个 System.out.println(DOSE);在扫描仪输入后测试扫描仪是否正常工作,并且确实如此。但是程序不会运行,除非我在程序中进一步初始化变量,这只是覆盖先前成功输入的 DOSE 值!
我目前注释了最终的 double DOSE = 5 初始化,这就是引发错误的原因。如果我去掉那些注释斜线,那么程序可以正常工作,但用户输入无关紧要。
我试图在这里找到解决方案,但没有成功。
package halflife;
import java.util.Scanner;
public class HalfLifeCalculation {
public static void main(String[] args) {
//variables scanner designated
Scanner input = new Scanner(System.in);
try {
System.out.print("Enter your daily dose: ");
double DOSE = input.nextDouble();
System.out.println(DOSE);
} finally {
input.close();
} //try end
//variables pre-set
int day = 2;
//final double DOSE = 5;
final double HALFLIFE = 0.175;
double result = (DOSE*HALFLIFE);
//pre-calculated header
System.out.println("Day 1\nRemaining substance is " + result + " mg\n");
//while loop calculation
while (day < 101) {
System.out.println("Day " + day);
System.out.println("Remaining substance is " + (result = (result + DOSE)*HALFLIFE) + " mg\n");
day++;
} //while end
} //main end
} //class end
【问题讨论】:
-
您在两个
{}中定义了DOSE,这是唯一定义它的地方。
标签: java variables constants final