我想让程序打印我输入星号的任何整数,以便每个新行都有越来越多的两个星号,总是从一个星号开始。
此代码将打印与我输入的行数相同的任何整数,其中包含一个星号,但如何增加每行中的星号数?
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("enter a number:");
int num = sc.nextInt();
int j=0;
int star=1;
int space= num;
System.out.println ("* ");
if (num>0) {
for (j=1; j<num; j=j+1) {
System.out.println ("* " );
}
for( j=0; j<star; j++) {
}
}
}
答案 0 :(得分:2)
public static void main(String[] args) {
String line = "* "; // let's use a variable for the next line we want to print
Scanner sc = new Scanner(System.in);
System.out.println("enter a number:");
int num = sc.nextInt();
if (num > 0) {
System.out.println(line);
for (int j = 1; j < num; j++) { // j++ does the same as j = j + 1
line = "*" + line; // add a * at the start of the line
System.out.println(line);
}
}
}
答案 1 :(得分:1)
System.out
是PrintStream
。 PrintStream
有第二种方法,print
打印出你放的内容,但不打印出后面的行尾字符。
所以,你可能想要改用它。
现在,说完了,当你完成其他角色时,你仍然需要打印出行尾字符。你可以通过调用no argument version of println
(看起来像System.out.println();
)
答案 2 :(得分:0)
假设你正在寻找这样的东西:
INPUT: 4
*
**
***
****
然后你可以这样做:
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for (int i = 0; i < num; i++) {
for (int j = 0; j < i; j++) {
System.out.Print("*");
}
System.out.Println();
}
请注意,这一次只打印出一颗星,而且速度相当慢。如果有乐趣可以看,如果在那里扔一个睡眠声明。
答案 3 :(得分:0)
你应该使用两个for循环,一个用于行,另一个用于星。
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
System.out.Print("*");
}
System.out.Println();
}
Output:
=======
*
**
***
****
*****