当前位置: 首页 > 知识库问答 >
问题:

如何使用两个for循环制作空心盒

华鹭洋
2023-03-14

使用嵌套for loops语句绘制“*”s的空心框。这些框的行数和列数相同,该数字应由用户输入(有效范围:5到21)。我想不出办法把盒子弄空心。这是我的代码,它是一个完整的正方形,但我需要它是空心的或只是边界。

System.out.println("How many rows/columns(5-21)?");
    rows=input.nextInt();
    while(rows<5||rows>21){
      System.out.println("Out of range. Reenter: ");
      rows=input.nextInt();
    }
    for(m=1;m<=rows;m++){
      for(c=1;c<=rows;c++){
        System.out.print("*");
      }
      System.out.println();
    }

输出应该是这样的:有多少行/列(5-21)?25超出范围。重新输入: 7

******* 
*     * 
*     * 
*     * 
*     * 
*     *  
*******

共有3个答案

李安歌
2023-03-14
  for (int i=1;i<=lgh;i++){
        for (int a=1;a<=lgh;a++){
            if(i>1 && i<lgh && a>1 && a<lgh)
                System.out.print(" ");
            else
                System.out.print("*");
        }
        System.out.println("");
    }
宰父俊彦
2023-03-14
import java.util.Scanner;

public class icibos {

    public static void main(String[] args) {

        Scanner gir = new Scanner(System.in);
        System.out.print("Karenin kenarını girin: ");
        int kenar = gir.nextInt();

        for (int i = 1; i <= kenar; i++) {
            for (int j = 1; j <= kenar; j++) {
                if (i == 1 || i == kenar || j == 1 || j == kenar)
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
            System.out.println();
        }
    }
}
冷善
2023-03-14

您只需要打印部分*s,因此在打印(“*”之前添加一个测试。一个选项是显式测试四个条件(顶部、底部、左侧、右侧),或者逻辑上一起测试:

if( (m==1) ||     //top
    (m==rows) ||  //bottom
    (c==1) ||     //left
    (c==rows)     //right
) {
        System.out.print("*");
} else {
        System.out.print(" ");
}

每个m=test或c==test标识一块正方形。由于这四个测试一起被OR运算,如果这四个测试中的任何一个为真,则if()为真(并打印a*)。如果它们都不是真的,else运行并打印一个空格。

我还建议将m重命名为rowIndex,将c重命名为colIndex或其他名称。一两周后,当您回到代码中时,更具描述性的名称将使您更容易找到您中断的地方。(问我怎么知道的!)

 类似资料:
  • DB_示例我正在探索数据库的自动化测试,并努力在表中找到空值。 我想测试: > 如果EID2= 有null值,我得到以下错误:不能调用String.startswith(String),因为java.util.Map.get(对象)的返回值为null。 我的第一个值总是空的,所以我从计数器1开始循环,这解决了这个问题,但是我的表中的EID和CID中都有空值。如果不满足条件(即值为null),测试失

  • 我想在Python2.7中并行化两个嵌套的for循环,但我自己没有成功。我不知道如何接近什么是并行化的定义。 总之,这里是单处理器代码:

  • 问题内容: 这是一个非常简单的for循环: 我知道它主要如何工作,但是我不明白最后的工作方式:如果我是对的,它应该加1,但是当它打印出时,它先打印0,然后再打印1。 为什么为什么不从1开始就因为?为什么仍然只打印出原始值而不是原始值? 问题答案: 一个循环的工作方式如下: 初始化完成(在您的情况下;仅执行一次) 条件检查(此处),如果条件为假,则退出循环 大括号内的代码已执行(根据您的情况) 更新

  • 本文向大家介绍Java利用for循环输出空心三角形、空心菱形和空心矩形的代码,包括了Java利用for循环输出空心三角形、空心菱形和空心矩形的代码的使用技巧和注意事项,需要的朋友参考一下 空心三角形 空心三角形输出需要用到判断语句,判断每行的空格与星号的输出,下面写出了完整语句,及相关语句的详细注释。空心菱形同样类似 空心菱形 空心菱形的上半部分与空心三角形完全一样,但是最后一行不能打印星号。 它

  • 如下所示,我要反转数组。但我的代码不管用。这是我的for循环。请看一下。这个for循环正确吗。代码如下。

  • 问题内容: 我也在学习Java和android。我们可以在while循环中执行的几乎所有事情都可以在while循环中执行。 我发现一个简单的条件,使用while循环比for循环更好 如果我必须在程序中使用counter的值,那么我认为while循环要比for循环好 使用while循环 在这种情况下,我发现while循环要比for循环好,因为如果要在for循环中实现相同的效果,则必须将counter