- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
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/
我不知道如何描述这一点。我在一个页面上有几个 div,类似于: some lorem ipsum text here Macbeth s
我是一名优秀的程序员,十分优秀!