简体   繁体   English

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

[英]How to make hollow box using two for loops

Use nested for loops statements to draw hallow boxes of "*"s.使用嵌套的 for 循环语句来绘制由“*”组成的空盒子。 The boxes have the same number of rows and columns and this number should be input from the user (valid range: 5 to 21).这些框具有相同的行数和列数,并且该数字应由用户输入(有效范围:5 到 21)。 I'm having trouble coming up with a way to make the box hollow.我很难想出一种使盒子空心的方法。 this is what i have for the code and it comes as a complete square, but i need it to be hollow or just the border.这就是我的代码,它是一个完整的正方形,但我需要它是空心的或只是边框。

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();
    }

You need to print only some of the *<\/code> s, so add a test before the print("*")<\/code> .您只需要打印一些*<\/code> s,因此在print("*")<\/code>之前添加一个测试。 One option would be to explicitly test the four conditions (top, bottom, left, right) and OR them together logically:一种选择是显式测试四个条件(顶部、底部、左侧、右侧)并将它们逻辑地 OR 在一起:

if( (m==1) ||     //top
    (m==rows) ||  //bottom
    (c==1) ||     //left
    (c==rows)     //right
) {
        System.out.print("*");
} else {
        System.out.print(" ");
}
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();
        }
    }
}
  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("");
    }

Try this , its bit hard code.<\/strong>试试这个,它有点硬代码。<\/strong>

Working Example here<\/a>这里的<\/a>工作示例

    String myStars="*******";
    String oneStar="*";
    int count=0;

    System.out.println(myStars);
    count++;
    while(count<=7)
    {
        System.out.println(oneStar+"     "+oneStar);
        count++;
    }
    System.out.print(myStars);

You can try this你可以试试这个

Example is Here<\/a>示例在这里<\/a>

    String pattern;

    int noOfTimes;

    Scanner scanner = new Scanner(System.in);

    System.out.print("Enter the pattern to print : ");
    pattern = scanner.nextLine();

    System.out.print("Enter number of times it should get printed : ");
    noOfTimes = scanner.nextInt();

    for(int i=1; i<=noOfTimes; i++) {      

        System.out.println();

        if(i==1 || i==noOfTimes) {

            for(int j=1; j<=noOfTimes; j++){

                System.out.print(pattern+" ");

            }
        }
        else {

            for(int k=1; k<=noOfTimes;k++) {

                if(k==1 || k == noOfTimes) {

                    System.out.print(pattern + " ");

                }                   
                else {

                    System.out.print("  ");

                }
            }
        }
    }
import java.util.Scanner;
public class holsqr{
    public static void main(String args[]){
        Scanner ma=new Scanner(System.in);
        System.out.print("Enter the number:");
        int max=ma.nextInt();
        for(int i=1;i<=max;i++){
            for(int j=1;j<=max;j++){
                if((i==1)||(i==max)){
                    System.out.print("#");
                }else{
                    if(j==1||j==max){
                        System.out.print("#");
                    }
                    else{
                        System.out.print(" ");
                    }           
                }
            }
            System.out.println();
        }
    }
}

It pretty simple, using two while loop: public static void main(String[] args) {很简单,使用两个 while 循环: public static void main(String[] args) {

    int size = 0;
    int r = 0;
    String star = "*";
    String space = " ";
    System.out.print("Input size of side of square: ");
    Scanner input = new Scanner(System.in);
    size = input.nextInt();

    while (r < size) {
        int c = 0;
        while (c < size) {
            System.out.print(r > 0 && r < size - 1 && c > 0 && c < size - 1 ? space : star);
            ++c;
        }
           System.out.println();
        ++r;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM