Java 我做错了什么y=4x^2+;5x-3,x必须以+从0.1开始,以1.0结束;0.1步
我需要将Java 我做错了什么y=4x^2+;5x-3,x必须以+从0.1开始,以1.0结束;0.1步,java,Java,我需要将xgo+分为0.1步,直到达到1.0 对于每个步骤,我都需要函数的输出y=4x^2+5x-3 Java给我的输出不是我所期望的 我试了一会儿。我必须提到我是一个全新的初学者 public class Main { public static void main(String[] args) { double x = 0.1; double x2 = Math.pow(x,2); double y = 4*x2 + 5*x -
x
go+分为0.1步,直到达到1.0
对于每个步骤,我都需要函数的输出y=4x^2+5x-3
Java给我的输出不是我所期望的
我试了一会儿。我必须提到我是一个全新的初学者
public class Main {
public static void main(String[] args)
{
double x = 0.1;
double x2 = Math.pow(x,2);
double y = 4*x2 + 5*x - 3;
double counter = 0.1;
while(counter <= 1.0)
{
System.out.print(y);
counter =+ 0.1;
x =+ 0.1;
}
}
}
公共类主{
公共静态void main(字符串[]args)
{
双x=0.1;
double x2=数学功率(x,2);
双y=4*x2+5*x-3;
双计数器=0.1;
虽然(计数器欢迎来到编码世界!当您运行循环时,循环中的代码将被执行多次。虽然直观地认为,通过将y
定义为x
的函数,意味着y
在x
更新时会更新,但不幸的是,情况并非如此。为了更新值,您必须每次运行循环时重新评估它
publicstaticvoidmain(字符串[]args){
双x=0.1;
double x2=数学功率(x,2);
双y=4*x2+5*x-3;
双计数器=0.1;
而(计数器需要在每个循环中进行计算
double getY(双x){
...
}
while(计数器publicstaticvoidmain(字符串[]args)
{
双x=0.1;
double x2=数学功率(x,2);
双y;
双计数器=0.1;
而(计数器问题在于,在更新x
之后,您没有重新计算y
。下面是一个可能有效的示例:
公共班机{
双静态计算(双x){
double x2=数学功率(x,2);
双y=4*x2+5*x-3;
返回y;
}
公共静态void main(字符串[]args)
{
双x=0.1;
双计数器=0.1;
而(计数器这是因为当x发生变化时,您没有更新y。您将y定义为:
double y = 4*x2 + 5*x - 3;
开始时,但您需要随着x的增量更改进行更新。您可以执行以下操作:
while(counter <= 1.0)
{
y = 4*x*x + 5*x - 3;
System.out.print(y);
counter += 0.1;
x += 0.1;
}
while(counter)你应该在循环的每一步重新计算y。counter=+0.1;
你期望它做什么?因为我认为它没有你期望它做什么。你声明的变量在“输入”时不会自动更新改变。例如,y
不会改变,如果你只是改变x
。当你改变x
时,你需要显式地重新计算y
。我认为它会在0.1的基础上增加一个0.1,从而使之成为一个2.0?=
需要是+=
,它们是不等价的。这将在当前状态下永远运行。它说了一些类似“不能从静态上下文引用非静态方法”的注释是的,因为calcY
是一个从main
调用的实例方法,这是一个静态方法。@LaffaYett。我编辑了示例来解决这个问题。=+
必须是+=
,它们不是等价的。这将在当前状态下永远运行。说得好,伙计们!Tunnel vision,应该提供更好的解决方案r回答:)=+
需要是+=
,它们不是等价的。这将在当前状态下永远运行。计算后应增加x。由于y
在x增量和计算之前打印,我认为(未测试)代码运行得很好-我同意,不过,约定在计算后会说增量。从double x=0;
开始当然会修正它。你说得很对!我不只是在评论中说这是一个很好的约定,而是决定在回答中显示它。谢谢你指出它!不过,当我尝试做你的时候,有一个问题另外,它说的是“非静态方法不能从静态上下文引用”
while(counter <= 1.0)
{
y = 4*x*x + 5*x - 3;
System.out.print(y);
counter += 0.1;
x += 0.1;
}
while(x <= 1.0)
{
y = 4*x*x + 5*x - 3;
System.out.print(y);
x += 0.1;
}