java新手,don';我不明白为什么我的while循环程序不能运行
这是我试图解决的问题 “墨西哥人口为6200万,正以每年7%的速度增长。美国目前的人口为2.8亿,正以每年2%的速度增长。如果这两个国家保持目前的增长率,墨西哥的人口在多少年后会超过美国的一半?你的程序应该回答这个问题。” 好的,这是我到目前为止的代码。当我运行程序时,我得到了这个错误 我不知道怎么修。有人能帮忙吗/java新手,don';我不明白为什么我的while循环程序不能运行,java,loops,while-loop,percentage,Java,Loops,While Loop,Percentage,这是我试图解决的问题 “墨西哥人口为6200万,正以每年7%的速度增长。美国目前的人口为2.8亿,正以每年2%的速度增长。如果这两个国家保持目前的增长率,墨西哥的人口在多少年后会超过美国的一半?你的程序应该回答这个问题。” 好的,这是我到目前为止的代码。当我运行程序时,我得到了这个错误 我不知道怎么修。有人能帮忙吗/ import java.util.Scanner; public class Whatever { public static void main (String [] ar
import java.util.Scanner;
public class Whatever {
public static void main (String [] args){
Scanner in = new Scanner (System.in);
int mex = 62000000;
int usa = 280000000;
int years = 0;
double t = 0 ;
while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))
{
t++;
years = t;
if (mex > (usa * 0.5));
break;
}
System.out.println ("Mexicos population is half of America in " + years + "years");
}
}
import java.util.Scanner;
公务舱{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int-mex=62000000;
int usa=280000000;
整数年=0;
双t=0;
而(mex(数学功率(1.07,t))(美国*0.5);;
打破
}
System.out.println(“墨西哥人口在“+年+年”内占美国人口的一半”);
}
}
编辑
对于任何想知道我最终得到了代码的人来说,这就是代码
导入java.util.Scanner 公务舱{ 公共静态void main(字符串[]args){
Scanner scan=新的扫描仪(System.in);
双mex=62000000;
双倍美国=280000000;
两年=0;
当(mex在代码中时,您定义了几个变量:
int mex = 62000000;
int usa = 280000000;
int years = 0;
double t = 0 ;
但是,您可以尝试使用这些函数:
while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))
while(mex(Math.pow(1.07,t))您在while循环中对“mex
”表达式应用了括号(就像它是一个函数一样),其中“mex
”只是一个正则变量。使用“usa”也是一样的
while(mex(Math.pow(1.07,t))您的问题在这里:
while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))
mex是一个整数
我想你是在试图繁殖
如果要乘法,请使用mex*(Math.pow(1.07,t)。要进行乘法,需要使用*
,即
while(mex * (Math.pow(1.07, t)) <= usa * (Math.pow(1.02, t)))
while(mex*(Math.pow(1.07,t))mex
和usa
应该是什么?(在while循环的情况下)供将来参考-我们不希望错误作为屏幕截图。请将输出复制/粘贴到您的问题中,并确保格式是可接受的。如果您不知道如何从命令提示符复制文本,一种方法是右键单击窗口->标记。然后突出显示文本并再次右键单击窗口以复制.mex=墨西哥人口usa=usa的人口你没有跟踪人口增长。你的mex
和usa
从未改变,所以你一直在比较相同的值。这是基本答案-我认为其他一些答案只涉及方法,因为他们没有等着思考OP试图做什么。好吧,出于某种原因,我只是想你可以说是usa(数学,pow(随便什么)),我把它修好了esily@AntonPipenbacher这仍然不能修复代码,这只是一个开始。正如前面所说的,在循环中不断比较相同的值。
while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))
while(mex*(Math.pow(1.07, t)) <= usa*(Math.pow(1.02, t)))
while(mex * (Math.pow(1.07, t)) <= usa * (Math.pow(1.02, t)))