我找不到什么是方法
问题描述:
public class Main {
private static void printStars(int amount) {
System.out.print("*");
}
private static void printWhitespaces(int size2) {
System.out.print(" ");
}
private static void printTriangle(int size) {
for (int i=1; i<=size; i++) {
{
for (int j=size-i; j>=1; j--)
printWhitespaces(size);
}
for(int k=1; k<=size; k++) {
printStars(size);
}
System.out.println("");
}
}
public static void main(String[] args) {
printTriangle(7);
}
}
的问题是在这里for(int k=1; k<=size; k++){printStars(size);}
这个函数并不想打印一人失踪1,2,3,4,5,6,7星上各票代替。每次打印每行中的星星总数,目前是7.我在做什么错了?我找不到什么是方法
答
我不知道你选择什么方式来实现三角形“作为提示:与控制台一起使用,你可以使用\\n
”;该代码的概念可能是这样看的代码片段
检测过
public class Main{
private void printStar() {
System.out.print("*");
}
private void printLineBreak() {
System.out.println();
}
private void printWhitespace() {
System.out.print(" ");
}
private void printWhitespaces(int size) {
for(int i=0; i<size; i++){
System.out.print("~");//replace with something else
this.printWhitespace();
}
}
private void printLeftToRightTriangle(int size) {
for(int i=0; i<size; i++){
for(int j=0; j<i+1; j++){
printStar();
printWhitespace();
}
this.printWhitespaces(size-(i+1));
this.printLineBreak();
}
}
private void printRightToLeftTriangle(int size) {
for(int i=0; i<size; i++){
this.printWhitespaces(size-(i+1));
for(int j=0; j<i+1; j++){
this.printStar();
this.printWhitespace();
} printLineBreak();
}
}
public Main(){
this.printLeftToRightTriangle(7);
this.printRightToLeftTriangle(7);
}
public static void main(String[] args) {
new Main();
}
}
编辑 @Jone我编辑的代码;我不确定你为什么使用空格;你说的是直角三角形,所以我试图创建从左到右和从右到左的三角形(请参阅我的控制台输出);
* ~ ~ ~ ~ ~ ~
* * ~ ~ ~ ~ ~
* * * ~ ~ ~ ~
* * * * ~ ~ ~
* * * * * ~ ~
* * * * * * ~
* * * * * * *
~ ~ ~ ~ ~ ~ *
~ ~ ~ ~ ~ * *
~ ~ ~ ~ * * *
~ ~ ~ * * * *
~ ~ * * * * *
~ * * * * * *
* * * * * * *
如果您需要更多信息,请告诉我。
我希望这有助于一点:)
答
int i,j
for (int y = 0; y < size; y++) {
for (i = y; i < size - 1; i++)
System.out.print(' ');
for (j = 0; j < y * 2 + 1; j++)
System.out.print('*');
System.out.println();
}
希望它能帮助!
答
您需要每行缩小的空格数,而每行增加的星的数量。所以在每一行中,空格的数量将是size - i
,星号的数量是i
。用你的代码,它总是打印size
星号,而不是i
星号。
要修复您的代码,请将k<=size
更改为k<=i
。
以下是您的代码的工作版本,并且为了便于阅读而修改了您的方法。
public class Main {
private static void printNTimes(char c, int n) {
for (int i = 0; i < n; i++) {
System.out.print(c);
}
}
private static void printTriangle(int size) {
for (int i = 1; i <= size; i++) {
printNTimes(' ', size - i);
printNTimes('*', i);
System.out.println();
}
}
public static void main(String[] args) {
printTriangle(7);
}
}
我缩进你的代码。我看到'printTriangle'内有一个额外的开口支架。你可能想把它移动到它所围绕的'for'循环中。尽管如此,它对你的输出没有任何影响。 – 4castle
我尝试在那里删除括号,没有任何变化 – Jone
对printStars和printWhitespaces的'int'参数有什么作用?他们目前尚未使用。你打算在那里放一个循环吗? – 4castle