我目前正在编写代码,以产生一个由1到20的星号制成的空心正方形。这是我到目前为止的内容,但是如果用户输入数字> 20,我将无法弄清楚如何将代码循环回自身。例如,如果用户输入21,代码仍会创建星号并在下面弹出“无效的尺寸。请输入1-20之间的尺寸:”文本以重新提示用户,但是新的数字不会产生任何结果。我需要它不是创建正方形(如果> 20或<= 0),而是直接“跳转”到“无效大小”文本,然后如果用户输入的值在1-20之间,则创建一个正方形。如果他们的输入再次> 20,我需要它再次提示无效。任何建议或帮助将不胜感激!非常感谢您抽出宝贵的时间阅读本文。 :)
import java.util.Scanner; // program uses class Scanner
public class HollowSquare {
public static void main(String[] args) {
// variable declaration
int x;
int s;
int p;
int r = 0;
int y = 1;
int z = 1;
int f = 1;
Scanner input = new Scanner(System.in);
System.out.printf("Enter the Size of the Asterisk Square from 1-20: "); // prompt user
x = input.nextInt();
if (x > 0 || x <= 20);
// read and store data from user
s = x + 2;
p = x - 2;
// print output
while (y <= x)
{
System.out.printf(" * ");
y++;
}
while (r < p)
{
System.out.print("\n * ");
while (z <= p)
{
System.out.print(" ");
z++;
}
System.out.print(" * ");
r++;
z=1;
}
System.out.print("\n");
if (x > 1)
{
while (f <= x)
{
System.out.printf(" * ");
f++;
}
System.out.printf("\n");
}
else
System.out.printf("\n");
// conditions
if (x <= 0 || x > 20)
System.out.println("Invalid Size. Enter Size from 1-20: ");
x = input.nextInt();
} // end main method
} // end class HollowSquare
答案 0 :(得分:1)
循环直到获得满意的输入:
int x=0;
/* ... */
while (x < 1 || x > 20)
{
System.out.printf("Enter the Size of the Asterisk Square from 1-20: "); // prompt user
x = input.nextInt();
}
答案 1 :(得分:0)
这是一些可以解决您问题的代码。
它使用一个递归函数,如果不成功,它将再次调用自身。
如果(等等等等);不执行任何操作(执行分号之前的表达式不执行任何操作。)
如果这样工作:
if(blah blah bla){
代码
代码
代码
}
注意大括号。
在带标识的python中做什么,通常在Java中使用大括号。
import java.util.Scanner; // program uses class Scanner
public class HollowSquare {
public static void main(String[] args){
drawSquare();
}
public static void drawSquare() {
// variable declaration
int x;
int s;
int p;
int r = 0;
int y = 1;
int z = 1;
int f = 1;
Scanner input = new Scanner(System.in);
System.out.printf("Enter the Size of the Asterisk Square from 1-20: "); // prompt user
x = Integer.parseInt(input.nextLine());
if (x > 0 && x <= 20){
// read and store data from user
s = x + 2;
p = x - 2;
// print output
while (y <= x)
{
System.out.printf(" * ");
y++;
}
while (r < p)
{
System.out.print("\n * ");
while (z <= p)
{
System.out.print(" ");
z++;
}
System.out.print(" * ");
r++;
z=1;
}
System.out.print("\n");
if (x > 1)
{
while (f <= x)
{
System.out.printf(" * ");
f++;
}
System.out.printf("\n");
}
else
System.out.printf("\n");
// conditions
}else{
System.out.println("Invalid Size. Enter Size from 1-20: ");
drawSquare();
}
} // end main method
} // end class HollowSquare