使用嵌套for循环语句绘制“*”的空格框。这些框具有相同的行数和列数,这个数字应该从用户输入(有效范围: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
*******
* *
* *
* *
* *
* *
*******
答案 0 :(得分:1)
您只需打印部分*
,因此请在print("*")
之前添加测试。一种选择是明确地测试四个条件(顶部,底部,左侧,右侧)和逻辑上的OR:
if( (m==1) || //top
(m==rows) || //bottom
(c==1) || //left
(c==rows) //right
) {
System.out.print("*");
} else {
System.out.print(" ");
}
每个m==
测试或c==
测试都会识别一个方块。自四次测试
如果四个测试中的任何一个为真,则OR(在一起),if()为真(并打印*)。如果它们都不为真,则else
运行并打印一个空格。
我还建议将m
重命名为rowIndex
,将c
重命名为colIndex
或其他内容。当您在一两周之后回到代码时,更具描述性的名称将使您更容易从上次停下的地方继续。 (问我怎么知道!)
答案 1 :(得分:0)
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();
}
}
}
答案 2 :(得分:0)
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("");
}
答案 3 :(得分:0)
试试这个,有点硬代码。
工作示例here
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);
答案 4 :(得分:0)
你可以试试这个
示例是Here
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(" ");
}
}
}
}
答案 5 :(得分:0)
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();
}
}
}
答案 6 :(得分:0)
非常简单,使用两个while循环: 公共静态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;
}
}