Итак, у меня есть упражнение на Java, где мне нужно, чтобы пользователь вводил число от 1 до 9, и он выводил полый квадрат NxN, основанный на числе введенных им чисел. Мне нужно использовать циклы и условные обозначения. Идея заключается в том, чтобы иметь что-то вроде этого:Полый квадрат NxN с использованием петель
вход Номер: 5
выход: (точки будут заменены пробелами)
55555
5 5
5 5
5 5
55555
Я не могу показаться, чтобы получить его к выходу правильно , У меня есть дополнительная «средняя» строка, помеченная в начале моей первой строки. Вот что у меня есть:
import java.util.Scanner ;
public class Assignment1Q4 {
public static void main (String [] args) {
int n, counter1=1, counter2=1 ;
Scanner kbd = new Scanner(System.in) ;
System.out.print("Please enter a number between 1 and 9: ") ;
n = kbd.nextInt() ;
if(n<=9) {
while(counter1<=n) { //counter1 keeps track of what line it's on
if(counter1==1) { //determines if first line
while(counter2<=n) { //counter2 keeps track of how many characters printed
System.out.print(n);
counter2=counter2+1 ;
}
}
if(counter1==n) { //determines if last line
counter2=1 ;
while(counter2<=n) { //does the same as the while for the first line
System.out.print(n);
counter2=counter2+1 ;
}
}
else { //is it the lines in between
counter2=1 ;
while(counter2<=n) {
if(counter2==1 || counter2==n) { //is it first or last char
System.out.print(n) ;
}
else {
System.out.print(" ") ;
}
counter2=counter2+1 ;
}
}
System.out.println() ; //makes sure each new line does print on a new line
counter1=counter1+1 ;
}
}
else {
System.out.print("Error: The number you have entered is not between 1 and 9") ;
}
}
}
Это выход:
Please enter a number between 1 and 9: 4
44444 4
4 4
4 4
4444
Только один совет, вместо того чтобы использовать переменные с именем счетчик1 и Counter2, а затем с комментарии говорят, что он делает, вы могли бы использовать самостоятельно описательный имя переменной как строки (или строку) и столбец. Это облегчит для других возможность увидеть, что делает ваш код. – user1071777