我有一个关于Java的相当简单的问题。我目前正在学习Java,其中一个功课问题令我难过。目标是用小人物创建一个三角形。我相信我有这个想法,但我无法让这个人的整个身影向右移动。
我到目前为止的代码是:
public class LittleGuy {
public static final int NUMBER_OF_GUYS = 5; // determines the number of guys.
public static void main(String[] args) {
for (int line = 1; line <= NUMBER_OF_GUYS; line++){
for (int j = 1; j <= (-5 * line + 25); j++){// uses the algorithm.
System.out.print(" ");
}
guy();
}
}
public static void guy(){
System.out.print(" o ******\n /|\\ *\n / \\ *");
System.out.println();
}
}
基本上,身体和头部不应该分开。我无法将它们保持在一起。我假设这是一个相当简单的修复,我要么不知道,要么完全过度。任何信息或想法将不胜感激。再次感谢。
答案 0 :(得分:0)
你只是在小家伙的第一行之前打印出空格,在guy()
方法中,你仍然在第一行打印其余的人。
我建议使用printSpaces(int numSpaces)
方法打印numSpaces
个空格,然后更改包方法以在每行的开头打印空格数。
答案 1 :(得分:0)
public class LittleGuy {
public static final int NUMBER_OF_GUYS = 5; // determines the number of guys.
public static void main(String[] args) {
for (int line = 1; line <= NUMBER_OF_GUYS; line++){
int counter=0;
for (int j = 1; j <= (-5 * line + 25); j++){// uses the algorithm.
System.out.print(" ");
counter++;
}
guy(counter);
}
}
public static void guy(int count){
System.out.print(" o ******");
System.out.print("\n");
for(int i=0;i<count;i++)
System.out.print(" ");
System.out.print("/|\\ *");
System.out.print("\n");
for(int i=0;i<count;i++)
System.out.print(" ");
System.out.print("/ \\ *");
System.out.println();
}
}
问题是:在guy()
方法中,您使用\n
来打印该人。但它不会处理您打印的空白区域以实现您的算法(在for
循环内)。
如何解决:在for
循环中放置一个计数器来计算打印了多少个空格,并在guy()
方法中使用该计数器来打印所需的空格。