java新手,don';我不明白为什么我的while循环程序不能运行

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

这是我试图解决的问题

“墨西哥人口为6200万,正以每年7%的速度增长。美国目前的人口为2.8亿,正以每年2%的速度增长。如果这两个国家保持目前的增长率,墨西哥的人口在多少年后会超过美国的一半?你的程序应该回答这个问题。”

好的,这是我到目前为止的代码。当我运行程序时,我得到了这个错误

我不知道怎么修。有人能帮忙吗/

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)))