以下为什么不打印出任何内容?

问题描述 投票:-2回答:3

我正在根据用户输入的大小在屏幕上用星号打印“ 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("");
                   }
                } 
            }
        }

这是我想要的输出:

Desired output

java
3个回答
0
投票

您的问题是for (int row = 1; row == size; row++)。对于循环,仅在第二个语句row == size为true时循环。在这种情况下,除非用户输入1,否则不会触发循环。此外,由于仅在检查条件之前修改了row变量,因此它们只会运行一次包含的代码。


0
投票

您的forloop条件是row == size。 forloop迭代直到满足条件。仅当size = 1时,该条件才能满足。但是在第二个for循环中,条件为column == size,这将不满足该条件,因为列的值在初始化时为0,大小为1。因此,循环将终止。 System.out.println(“”);将执行一次。如果输入的大小为1,则应该在第一个for循环中提供条件row < size,在第二个for循环中提供条件column < size


0
投票

行==大小和列== for循环中的大小必须用类似这样的方式更改:列<= size

© www.soinside.com 2019 - 2024. All rights reserved.