gpt4 book ai didi

java - 使用 if 语句依次执行这两个代码

转载 作者:太空宇宙 更新时间:2023-11-04 10:25:20 25 4
gpt4 key购买 nike

if (m>1){

if (x1>=0 || x1<0) {
System.out.println("Please enter the values of f(x1): \n");
for (int i = Koef.length-2; i >=0; i--) { // gives the length of my row (m)
for (int j =Koef[0].length-1; j>=0;j--) { //gives the length of my column (n).
Koef[0][j] = readInteger("Enter the values of your coeffecients: "
+"f(x1), Coeffecient" +(j)+": "); // readInteger takes an input from the user
}
System.out.println();
}
}

//我的问题就在这里
//在上面的代码完成后,我也尝试执行下面的代码,但不知何故它永远不会到达

        if(x2>=0 || x2<0) {
System.out.println("Now enter the value of f(x2): \n");
for (int i = Koef.length-2; i >=0; i--) {
for (int j =Koef[0].length-1; j>=0;j--) {

Koef[1][j] = readInteger("Enter the value of coefficients: "
+"f(x2), Coefficient" +(j)+": ");
}
}
}
====================================================================

//这是在测试类中发生的事情:

if (m==2) {
int n = 1+readInteger("Which polynomial degree do you want to enter for f(x1)?");
int x1 = readInteger("please enter the value of x1:");
polynom pol1 = new polynom (m,n,x1,0); //m-2 = array 0 & n +1 = polynomial degree of array 0

//m 是第一个数组,n 是第二个数组,x1 是第一个多项式的值 x2 是第二个多项式的值

int n = 1+readInteger("Which polynomial degree do you want to enter for f(x2)?");
int x2 = readInteger("Please enter the value of x2:");
polynom pol2 = new polynom (m,n,0,x2);
}

我已经尝试不使用 if 语句,但我用第一个给定的幂得到了 f(x1) 和 f(x2) 的打印,然后用第二个给定的幂再次得到了两个结果。

我想要的是:得到f(x1)的一次幂(n)和f(x2)的二次幂每一个,只有一次。

如果你能帮我摆脱困境,我将不胜感激感谢您的帮助:)

编辑部分代码以获得更多说明:测试类

public class MainMenu{

public static void main(String[] args) {
System.out.println("Do you want to calculate one or two polynoms?");
int m = readInteger();

if (m==1) {
int n = 1+readInteger("Which polynom degree for f(x1), do you want to calculate?");
int x1 = readInteger("Please enter the value of x1: ");
pol1.eingabe();
pol1.ausgabe();
}

else if (m==2) {
int n = 1+readInteger("Which polynom degree for f(x1), do you want to calculate?");
int x1 = readInteger("Please enter the value of x1: ");
polynom pol1 = new polynom (m,n,x1,0);

n = 1+readInteger("Which polynom degree for f(x2), do you want to calculate?");
int x2 = readInteger("Please enter the value of x2: ");
polynom pol2 = new polynom (m,n,0,x2);
polynom pol3 = new polynom (m,n,x1,x2); //addition

pol1.eingabe();
pol2.eingabe();
pol1.ausgabe();
pol2.ausgabe();
pol3.addieren(pol1, pol2);

}

多项式类

public class polynom {

private int n; //number of Polynomial degree
private int m; //number of polynoms
private double[][] Koef;
private double x1;
private double x2;
public polynom (int a, int b, int c, int d) {
m =a;
n=b;
Koef = new double[m][n]; // create n arrays (n =6.. that means create 6 opening for coefficients)

x1 =c;
x2 =d;
}
public void eingabe() {
if (m==1) {
for (int i = Koef.length-1; i >=0; i--) {
for (int j =Koef[0].length-1; j>=0;j--) {
Koef[0][j] = readInteger("Enter the coeffecient values of f(x1) ein: " +(j) +": ");
}
}
}
//=========================================
//=========================================
if (m>1){

if (x1>=0 || x1<0) {
System.out.println("Please enter the value of f(x1) : \n");
for (int i = Koef.length-2; i >=0; i--) {
for (int j =Koef[0].length-1; j>=0;j--) {
Koef[0][j] = readInteger("Give the value of"+"f(x1) , Coeffiecient" +(j)+": ");
}
System.out.println();
}
}

if(x2>=0 || x2<0) {
System.out.println("Now, enter the values of f(x2) \n");
for (int i = Koef.length-2; i >=0; i--) {
for (int j =Koef[0].length-1; j>=0;j--) {
Koef[1][j] = readInteger("Enter the coeffiecient values of "+"f(x2) ein, Koeffizient " +(j)+": ");
}
}
}
}
}

最佳答案

正如我在代码中看到的,您为两个系数 vector 创建了一个矩阵(二维数组) - Koef[m][n]

但是,您的 if 语句( x1>=0 || x1<0 和 x2>=0 || x2<0)没有任何意义,因此它们始终为 true,在此 if 内有两个代码块。

在 block 中,您读取 2 个多项式的系数。您的外部 for 循环也很奇怪,因为如果 m==1 或 m==2 您的外部 for 循环将仅执行一步,并且您为一个或两个多项式设置系数。

但如果 m>2,您将多次输入多项式的系数。

例如:米=10您将转到 if(m>1) 部分

然后在每个 if 中(通过 x1 和 x2)

您需要在中输入系数

for (int i = Koef.length-2; i >=0; i--)

9次,因为Koef.length=10您将在从 8 到 0 的 i 迭代中输入系数

您写道,您不会进入第二个 if (x2>=0 || x2<0)

也许你有很大的m并且第一个if等待数据不止一次?您实际上不需要外部 for 循环,因为您在每次迭代中执行相同的操作并多次重写相同的系数

希望对你有帮助

关于java - 使用 if 语句依次执行这两个代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50605587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com