当前位置: 首页 > 知识库问答 >
问题:

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

郏扬
2023-03-14

这是我试图解决的问题。

“墨西哥人口为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");
    }   

   }

编辑

对于任何想知道我最终让代码工作的人。这是代码。

导入java.util.扫描仪;

公共类随便{

公共静态空main(String[]args){

Scanner scan = new Scanner (System.in);

double mex = 62000000;
double usa = 280000000;
double years = 0;

    while(mex <= usa/2) 
    {   
        years++;
    mex = mex * 1.07;
    usa = usa * 1.02;

    }       
    System.out.println ("Mexicos population is half of America in " + years + " years ");
    }   

}

共有3个答案

濮阳鸿祯
2023-03-14

在代码中,您定义了几个变量:

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

在Java,这些变量被用作函数的参数;而不是相反!

双恩
2023-03-14

您的问题在于:

while(mex(Math.pow(1.07, t)) <= usa(Math.pow(1.02, t)))

在变量后面加括号表示您正试图用该名称调用函数(在本例中为mex和usa)。实际上,您要做的是将这些值相乘,因此需要在其中添加星号:

while(mex*(Math.pow(1.07, t)) <= usa*(Math.pow(1.02, t)))
农存
2023-03-14

mex是一个整数。

我想你是想乘数。

如果要乘法,请使用mex*(数学功率(1.07,t)。

 类似资料:
  • 当用户键入以下内容的答案时:system.out.println(“键入数字”); 它不会继续到我的代码的下一部分。

  • ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。 为什么会这样?因为我指定了在不满足任何条件的情况下分配给列的值。

  • 我目前有一个问题,一个'而'循环不执行。如果输入文本文件有下一行,我将循环条件设置为true。然而,当我执行我的程序时,循环没有运行。我通过添加一个“System.out.println(text)”来确认这一点,正如我所怀疑的,没有产生任何文本。 什么问题导致循环无法执行?

  • 我想写一个计算长除法问题总进位的代码。这是我为carries编写的函数。我相信问题在于,第一个while循环并没有一直运行。如果是,为什么?这是在Python 3.5中实现的。

  • 尽管有值,但我不能得到一个用户的值的和时间。 即使用户17有工作时间值,我也会在sumTW列中得到该用户的NULL值。我该怎么解决? 这就是我的查询看起来的样子: 下面是表格代码: (这个表和原来的不一样,原来的有外键。我去掉它们只是为了能够再现同样的问题,同样的问题被报告了)。

  • 我想我的程序跳过了while循环,但我真的不确定到底发生了什么。该函数应该通过找到GCD,然后将分子和分母除以该数字来减少分数。 我得到分子和分母的绝对值,以确保如果分数是负数,我会在最后保持它。如果分子为0,则要求我返回(0,1)。问题是关于while循环。。。似乎它被完全跳过了。有什么建议吗?