我正在根据用户输入的大小在屏幕上用星号打印“ O”。屏幕上没有任何内容。这是我正在努力的实验任务。
import java.util.Scanner;
公共类TestPrinto {
public static void main(String[]args) {
Scanner input = new Scanner (System.in);
char x = input.next().charAt(0);
int size = input.nextInt();
System.out.println("You have entered: "+ x );
if(x == 'o' || x == 'O'){
for (int row = 1; row == size; row++)
{
for (int column = 0; column == size ; column++)
{
if (row == size|| row == 1 || column == size || column == 1)
{
System.out.print("*");
}
else
{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
}
这是我想要的输出:
您的问题是for (int row = 1; row == size; row++)
。对于循环,仅在第二个语句row == size
为true时循环。在这种情况下,除非用户输入1,否则不会触发循环。此外,由于仅在检查条件之前修改了row
变量,因此它们只会运行一次包含的代码。
您的forloop条件是row == size
。 forloop迭代直到满足条件。仅当size = 1时,该条件才能满足。但是在第二个for循环中,条件为column == size
,这将不满足该条件,因为列的值在初始化时为0,大小为1。因此,循环将终止。 System.out.println(“”);将执行一次。如果输入的大小为1,则应该在第一个for循环中提供条件row < size
,在第二个for循环中提供条件column < size
。
行==大小和列== for循环中的大小必须用类似这样的方式更改:列<= size