为什么我的变量打印不出来?
Why isn't my variable printing?
public class FirstofTen
{
public static void main(String[] args) throws IOException
{
int i = 10;
while (i >= -10) {
double x = i / 10.0;
i--;
String X = String.format("%.2f", x);
System.out.println(X);
}
i = 10;
while(i >= -10) {
double x = i / 10.0;
i--;
String X = String.format("%.2f", x);
double Y = Math.sqrt(Math.pow(1, 2) - Math.pow(x, 2));
System.out.println(String.format("%.2f", Y));
}
这是一项学校作业,我不想要答案,只想要帮助。基本上,我知道三角形的斜边总是 1。我也知道 X
必须在 -1
和 1
之间,如果它是双倍的(0.5
、0.6
等)。所以假设 X
是 0.9
,那么我必须让 Java 使用勾股定理计算三角形的第三条边的结果。我得到了那个部分。问题,我有依赖于输出。我得到这个输出:
1.00
0.90
0.80
0.70
0.60
0.50
0.40
0.30
0.20
0.10
0.00
-0.10
-0.20
-0.30
-0.40
-0.50
-0.60
-0.70
-0.80
-0.90
-1.00
0.0
0.44
0.60
0.71
0.80
0.87
0.92
0.95
0.98
0.99
1.00
0.99
0.98
0.95
0.92
0.87
0.80
0.71
0.60
0.44
0.00
如您所见,它打印 X,然后在其正下方打印 Y。如何将它们分成不同的列?
您必须指定要在里面打印的内容
System.out.println();
改为:
System.out.println(Y);
您的第二个 while 循环不会进入,因为 i
在第一个 while 循环后小于 -10。您应该在第二次循环之前重置它的值。
您的代码存在多个问题:
首先,你在第二个循环开始时大喊 i
重置为 10;或者使用 for
循环,它会更干净。这样,这段代码
int i = 10;
while (i >= -10) {
// work
i--;
}
变成这样:
for (int i = 10; i >=-10; i--) {
// work
}
其次,在你的第二个循环中,你应该格式化你的 Y
并实际打印出来。您也可以一次完成格式化和打印:
System.out.println(String.format("%.2f", Y));
while (i >= -10){
double x = i / 10.0;
i--;
String X = String.format("%.2f", x);
System.out.println("X : " + X);
}
当while循环退出时i的值是i = -1.0
因此,您的下一个 while 不会执行为 i >= -10 returns false
解决方案:
int i=10;
System.out.print("Values For X : ");
while (i >= -10) {
// Code Goes Here for first while loop
System.out.print(" " + X)
}
i=10; // Just re-initialize i with previous value i.e., 10
System.out.print("Values For Y : ");
while(i>=-10) {
// Code Goes Here for second while loop
System.out.print(" " + Y); // and not System.out.println();
}
在第二个 while 循环之前在代码中再次初始化 i=10 它会工作
public class FirstofTen
{
public static void main(String[] args) throws IOException
{
int i = 10;
while (i >= -10) {
double x = i / 10.0;
i--;
String X = String.format("%.2f", x);
System.out.println(X);
}
i = 10;
while(i >= -10) {
double x = i / 10.0;
i--;
String X = String.format("%.2f", x);
double Y = Math.sqrt(Math.pow(1, 2) - Math.pow(x, 2));
System.out.println(String.format("%.2f", Y));
}
这是一项学校作业,我不想要答案,只想要帮助。基本上,我知道三角形的斜边总是 1。我也知道 X
必须在 -1
和 1
之间,如果它是双倍的(0.5
、0.6
等)。所以假设 X
是 0.9
,那么我必须让 Java 使用勾股定理计算三角形的第三条边的结果。我得到了那个部分。问题,我有依赖于输出。我得到这个输出:
1.00
0.90
0.80
0.70
0.60
0.50
0.40
0.30
0.20
0.10
0.00
-0.10
-0.20
-0.30
-0.40
-0.50
-0.60
-0.70
-0.80
-0.90
-1.00
0.0
0.44
0.60
0.71
0.80
0.87
0.92
0.95
0.98
0.99
1.00
0.99
0.98
0.95
0.92
0.87
0.80
0.71
0.60
0.44
0.00
如您所见,它打印 X,然后在其正下方打印 Y。如何将它们分成不同的列?
您必须指定要在里面打印的内容
System.out.println();
改为:
System.out.println(Y);
您的第二个 while 循环不会进入,因为 i
在第一个 while 循环后小于 -10。您应该在第二次循环之前重置它的值。
您的代码存在多个问题:
首先,你在第二个循环开始时大喊 i
重置为 10;或者使用 for
循环,它会更干净。这样,这段代码
int i = 10;
while (i >= -10) {
// work
i--;
}
变成这样:
for (int i = 10; i >=-10; i--) {
// work
}
其次,在你的第二个循环中,你应该格式化你的 Y
并实际打印出来。您也可以一次完成格式化和打印:
System.out.println(String.format("%.2f", Y));
while (i >= -10){
double x = i / 10.0;
i--;
String X = String.format("%.2f", x);
System.out.println("X : " + X);
}
当while循环退出时i的值是i = -1.0
因此,您的下一个 while 不会执行为 i >= -10 returns false
解决方案:
int i=10;
System.out.print("Values For X : ");
while (i >= -10) {
// Code Goes Here for first while loop
System.out.print(" " + X)
}
i=10; // Just re-initialize i with previous value i.e., 10
System.out.print("Values For Y : ");
while(i>=-10) {
// Code Goes Here for second while loop
System.out.print(" " + Y); // and not System.out.println();
}
在第二个 while 循环之前在代码中再次初始化 i=10 它会工作