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

如何保证用户输入在给定的有效范围内?

元昊苍
2023-03-14

我目前正在工作的代码,以产生一个空心的正方形,由星号从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

共有1个答案

梁宏才
2023-03-14

循环直到得到满意的输入:

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();  
}
 类似资料:
  • 只是想寻求一点帮助!我现在正在做一个体重转换项目。我已经让它正常工作了,但现在我正试图让它成为傻瓜式的,也就是说,如果用户输入的数值低于或超过某个范围(在本例中,我寻找的是0到450之间的KG),则会出现一条消息,告知错误,然后会提示用户再次输入其值。我可以用下面的代码实现这一点,但问题是,当用户输入一个有效值时,它不仅会打印有效输入的转换,还会打印之前不正确的值的转换。我附上了一个命令提示符的屏

  • 我正在制作一个简单的石头剪刀程序,但不确定如何确保用户只输入有效的选项。如果他们不键入“石头”、“纸”或“剪刀”(大写不重要)等变量,然后再键入“是”或“否”,我需要能够对他们进行谴责。建议? }

  • 您好,我有一个值为0-380的输入范围,我想禁用一些值,比如ID 30。因此,当我选择29并按下右箭头时,它必须更改为31。

  • 问题内容: 在下面的代码中,您将看到它询问“ shift”值。我的问题是我想将输入限制为1到26。 我如何轻松做到这一点? 问题答案: 使用循环不断询问他们的输入,直到收到您认为有效的信息: 如果您收到一个呼叫(例如,如果他们键入),您还希望在呼叫周围有一个障碍。 请注意,如果您使用Python 2.x,则需要使用而不是。后者将尝试将输入解释为Python代码-可能非常糟糕。

  • 我希望“请输入一个带有字母S的句子”循环,直到用户输入字母“S”

  • 对于我的Java类,我正在编写一个小程序,首先选择一个介于1和100之间的数字。然后,它会提示用户开始猜测正确的。如果用户对的猜测过高或过低,程序会打印出一个新范围,供他们在该范围内进行猜测。如果用户输入或,程序只需重新要求用户输入,但不会以任何方式更改范围。 示例输出(当机密号为20时)如下所示: 该项目似乎已经基本完成,但只有一个例外。其中一个要求是,当用户键入的超出我们给定的1和100范围时