Java 我能';在这个印刷程序中似乎找不到问题
我在一个免费的网站上学习Java,我无法解决这个问题,程序要我打印一个直角三角形Java 我能';在这个印刷程序中似乎找不到问题,java,Java,我在一个免费的网站上学习Java,我无法解决这个问题,程序要我打印一个直角三角形 public class PrintingLikeBoss { // copy or rewrite the method of Assignment 39.1 here public static void printStars(int amount) { int i; for (i = 0; i < amount; i++) { System.out.print("*"
public class PrintingLikeBoss {
// copy or rewrite the method of Assignment 39.1 here
public static void printStars(int amount) {
int i;
for (i = 0; i < amount; i++) {
System.out.print("*");
}
System.out.println("");
}
public static void printWhitespaces(int amount) {
// 40.1
int i;
for (i = 0; i < amount; i++) {
System.out.print(" ");
}
}
public static void printTriangle(int size) {
// 40.2
int j = size;
for (int i = 0; i <= size; i++) {
printWhitespaces(j);
printStars(i);
j -= 1;
}
}
public static void xmasTree(int height) {
// 40.3
}
public static void main(String[] args) {
// Tests do not use main, yo can write code here freely!
printTriangle(5);
System.out.println("---");
xmasTree(4);
System.out.println("---");
xmasTree(10);
}
我得到的错误是“不要在printTriangle中的行首添加额外的空格”
这是一个与课程相关的特定错误,程序运行时没有问题。当您检查传递给方法的实际值时,您会发现方法
printTriangle()
首先调用
printWhitespaces(5);
然后
printStarts(0);
所以,;首先打印5个空格;然后零星;然后是一条新线
因此,问题是:对于循环的第一次迭代,您没有打印任何星星;只有空格+换行符。换句话说:三角形以一条空线开始
也许这就是作业核查员抱怨的。因此,您可以尝试将
printTriangle()
中的循环更改为1;不是0。因为这样,您将在第一行上至少打印一个*。当您检查传递给方法的实际值时,您将发现您的方法printTriangle()
首先调用
printWhitespaces(5);
然后
printStarts(0);
所以,;首先打印5个空格;然后零星;然后是一条新线
因此,问题是:对于循环的第一次迭代,您没有打印任何星星;只有空格+换行符。换句话说:三角形以一条空线开始
也许这就是作业核查员抱怨的。因此,您可以尝试将
printTriangle()
中的循环更改为1;不是0。因为这样一来,第一行至少会打印一个*。我想你不需要第一行的空白,就这样做吧
public static void printTriangle(int size) {
// 40.2
int j = size;
for (int i = 1; i <= size; i++) {
printWhitespaces(j);
printStars(i);
j -= 1;
}
}
publicstaticvoidprintTriangle(int-size){
// 40.2
int j=尺寸;
对于(inti=1;i我想你不希望第一行有空格,就这样做吧
public static void printTriangle(int size) {
// 40.2
int j = size;
for (int i = 1; i <= size; i++) {
printWhitespaces(j);
printStars(i);
j -= 1;
}
}
publicstaticvoidprintTriangle(int-size){
// 40.2
int j=尺寸;
对于(int i=1;i)您以0开始循环,因此它将在第一次迭代中打印0颗星…您认为这是什么意思?提示:将空格替换为破折号以查看发生了什么()。谢谢,破折号真的很有帮助。你用0
开始你的循环,因此它将在第一次迭代中打印0颗星…你认为这是什么意思?提示:用破折号替换空格以查看发生了什么()。谢谢,破折号真的很有帮助。