这非常简单,对不起,我无法解决这个问题。当我仅使用处理删除while
循环时它可以工作,但我不确定我在while
循环中做错了什么。有什么建议吗?
/*Cobalt
60, a radioactive form of cobalt used in cancer therapy, decays or
dissipates over a period of time. Each year, 12 percent of the
amount present at the beginning of the year will have decayed. If
a container of cobalt 60 initially contains 10 grams, create a
Java program to determine the amount remaining after five years. */
public class Cobalt {
public static void main(String[] args) {
//dec
double CInitial = 10.0;
double decay = .12;
double CUpdatedA, CUpdatedB;
//proc
int years = 0;
while (years < 5);
{
CUpdatedA = CInitial * decay;
CUpdatedB = CInitial - CUpdatedA;
years++;
}
//out
System.out.println("the amount of cobalt left after 5 years is"
+ CUpdatedB);
}
}
答案 0 :(得分:1)
在您的代码中,请仔细阅读此行:
while (years < 5);
最后有一个分号,表示此语句已完成。
您可能会问,“为什么括号不会导致错误?” 括号表示一个部分,它不会影响代码。
使这项工作的方法是删除冒号。
此外,
您需要初始化变量,否则编译器将显示
variable CUpdatedB might not have been initialized
(写CUpdatedA,CUpdatedB = 0)
答案 1 :(得分:0)
此外,while循环问题,即删除分号。您似乎没有得到正确答案,因为在每个循环结束时,您的CInitial不会在该年度衰减后更新值。
这里使用CUpdatedB重置CInitial作为while循环中的最后一个语句。
public class Cobalt {
public static void main(String[] args) {
//dec
double CInitial = 10.0;
double decay = 0.12;
double CUpdatedA = 0, CUpdatedB = 0;
//proc
int years = 0;
while (years < 5)
{
CUpdatedA = CInitial * decay;
CUpdatedB = CInitial - CUpdatedA;
CInitial = CUpdatedB;
years++;
}
//out
System.out.println("the amount of cobalt left after 5 years is: " + CUpdatedB);
}
}
产出:5年后留下的钴量为:5.277319168 我希望这是你期待的答案。