我以前有一个功能版本,该功能版本使用的唯一变量较少,而第一个变量仅使用了更多实例,但是在又添加了两个与第一个变量相关的变量后,我的代码出现错误,表明我需要初始化我的变量“ numbList”。
理想情况下,我想在每个新行之后简单地更新“ numbList”的值,然后将更新“ numbSquare”和“ numbCube”的值。到目前为止,我运气还不太好。
public class Assignment2BPart2 {
public static void main(String[] args) {
int numbList;
int numbSquare;
int numbCube;
numbSquare = numbList * numbList;
numbCube = numbSquare * numbList;
System.out.println("The following is a table of values, showing numbers 0 - 10 and their squares and cubes.");
System.out.printf("%s%s%s%n", "Number ", "Square ", "Cube");
System.out.printf("%d \t %d \t %d%n", numbList = 0, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 1, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 2, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 3, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 4, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 5, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 6, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 7, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 8, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 9, numbSquare, numbCube);
System.out.printf("%d \t %d \t %d%n", numbList = 10, numbSquare, numbCube);
}
}
预期结果将是一个3列的表,其标题为
数字平方立方体
第1列的其余值为0-10,第2列为这些数字的平方,第3列为数字的立方。
到目前为止,我无法在此迭代中运行代码。
答案 0 :(得分:1)
逻辑是错误的,您必须在更新numbList
之后计算平方和立方,因此您必须使用任何循环或递归来执行此操作,但是我宁愿使用两种方法返回int值一个用于计算平方,另一个用于计算立方体
public class NewMain {
public static void main(String[] args) {
int numbList = 0;
System.out.println("The following is a table of values, showing numbers 0 - 10 and their squares and cubes.");
System.out.printf("%s%s%s%n", "Number ", "Square ", "Cube");
//
System.out.printf("%d \t %d \t %d%n", numbList = 0, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 1, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 2, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 3, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 4, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 5, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 6, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 7, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 8, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 9, squareOfNumber(numbList), cubeOfNumber(numbList));
System.out.printf("%d \t %d \t %d%n", numbList = 10, squareOfNumber(numbList), cubeOfNumber(numbList));
}
public static int squareOfNumber(int num) {
return num*num;
}
public static int cubeOfNumber(int num) {
return num*num*num;
}
}
用于循环,您可以在上面应用相同的逻辑
for(int i=0; i<=10; i++) {
System.out.printf("%d \t %d \t %d%n", i, i*i, i*i*i);
}
您也可以使用Math.pow()
nt intResult = (int) Math.pow(2, 3);
该方法将2乘以3的幂并返回结果
答案 1 :(得分:1)
您正在寻找的解决方案是如何使代码和变量可重用。实现此功能的一种方法是使用函数,尽管您可能还不了解这一点。然后,您可以使用for循环在函数中输入数字1到10,以获得所需的输出。
public static int NumberSquared(int number)
{
return number*number;
}
public static int NumberCubed(int number)
{
return number*number*number;
}
public static void main(String[] args)
{
for(int i=0; i <= 10; i++)
{
System.out.println("Number " + i + " Square: " + NumberSquared(i) + " Cube: " + NumberCubed(i));
}
}
答案 2 :(得分:1)
达到类似目的的通常方法是使用for
loop:
System.out.println("The following is a table of values, showing numbers 0 - 10 and their squares and cubes.");
System.out.printf("%s%s%s%n", "Number ", "Square ", "Cube");
for (int num = 0; num <= 10; num++) {
System.out.printf("%d \t %d \t %d%n", num, num * num, num * num * num);
}
答案 3 :(得分:0)
基本问题是计算平方和立方的语句。那时,您要计算的平方/立方值的数字尚未初始化。
现在,您可以直接在Sys.Outs中相乘以分别计算平方和立方。一旦了解了循环和递归是什么,代码行将大大减少。