在Java中打印一个带有限制和IF语句的矩形,该语句不是';行不通

在Java中打印一个带有限制和IF语句的矩形,该语句不是';行不通,java,Java,我正在尝试创建一个程序,该程序接受用户输入并生成一个矩形。用户输入长度和宽度的数字以及填充矩形的另一个符号或字符。一切正常。我的代码可以创建任意大小的矩形,但如果行数或列数小于或等于零或大于50,我需要限制它打印“输入错误” 这是我的代码,我目前正试图用if语句定义它,它会在输入和矩形中保持打印“状态”错误。任何帮助或其他方法都将不胜感激 import java.util.Scanner; public class Rectangle { public static void ma

我正在尝试创建一个程序,该程序接受用户输入并生成一个矩形。用户输入长度和宽度的数字以及填充矩形的另一个符号或字符。一切正常。我的代码可以创建任意大小的矩形,但如果行数或列数小于或等于零或大于50,我需要限制它打印“输入错误”

这是我的代码,我目前正试图用if语句定义它,它会在输入和矩形中保持打印“状态”错误。任何帮助或其他方法都将不胜感激

import java.util.Scanner;

public class Rectangle
  {
    public static void main(String[] args)
  {
 int length;
 int width;
 String symbol;
 char symbolz;
 int xLength;
 int yWidth;



 Scanner input = new Scanner(System.in);         
 while(input.hasNext()){
    {  width = input.nextInt();
       length = input.nextInt();
       symbol = input.next();
       symbolz = symbol.charAt(0);


       if (length<=0||length>50||width<=0||width>50){
       }
        System.out.print("error in input");{

       {for (yWidth = 1; yWidth <= width; yWidth++){
        for (xLength = 1; xLength <= length; xLength++) {
            System.out.print(symbolz);
        }

        System.out.println(" ");
    }
    for(yWidth = 1; yWidth >= width; yWidth--){
        for (xLength = 1; xLength >= length; xLength--){
            System.out.print(symbolz);
        }

        System.out.println(" ");
                }
            }
            }
        }
    }
}}
import java.util.Scanner;
公共类矩形
{
公共静态void main(字符串[]args)
{
整数长度;
整数宽度;
字符串符号;
字符符号;
int x长度;
国际宽度;
扫描仪输入=新扫描仪(System.in);
while(input.hasNext()){
{width=input.nextInt();
length=input.nextInt();
symbol=input.next();
symbolz=symbol.charAt(0);
如果(长度50 |宽度50){
}
系统输出打印(“输入错误”){
{for(yWidth=1;yWidth=length;xLength--){
系统输出打印(symbolz);
}
System.out.println(“”);
}
}
}
}
}
}}
已编辑:切换到if语句,但仍然有问题,因为它在所有键入的内容中不断插入“用户输入错误”,并且在不应该打印矩形时也打印矩形


到目前为止,我已经尝试让If语句工作,它一直在做同样的事情,在超出范围的输入上打印“用户输入中的错误”,但它也打印了不应该打印的矩形。有什么指导吗?

该构造称为do while,一般格式为:

do {
    // statements
} while (condition);
do循环缺少while(条件)指示循环何时停止的
while(条件)


它本质上是一个while循环,区别在于do-while在循环结束时测试条件,while循环在开始时测试条件,因此do-while将始终至少执行一次循环。

我让它使用if和continue语句

import java.util.Scanner;

public class Rectangle
 {
 public static void main(String[] args)
 {
 int length;
 int width;
 String symbol;
 char symbolz;
 int xLength;
 int yWidth;



 Scanner input = new Scanner(System.in);
 while(input.hasNext()){
    {  width = input.nextInt();
       length = input.nextInt();
       symbol = input.next();
       symbolz = symbol.charAt(0);
       if (length<=0||length>50||width<=0||width>50){
       System.out.print("error in input");
       System.out.println();
       continue;}
   {
       for (yWidth = 1; yWidth <= width; yWidth++){
            for (xLength = 1; xLength <= length; xLength++) {
                System.out.print(symbolz);

    }

    System.out.println(" ");
}
for(yWidth = 1; yWidth >= width; yWidth--){
    for (xLength = 1; xLength >= length; xLength--){
         System.out.print(symbolz);
    }

    System.out.print(" ");
            }
        }
        }
    }
}
import java.util.Scanner;
公共类矩形
{
公共静态void main(字符串[]args)
{
整数长度;
整数宽度;
字符串符号;
字符符号;
int x长度;
国际宽度;
扫描仪输入=新扫描仪(System.in);
while(input.hasNext()){
{width=input.nextInt();
length=input.nextInt();
symbol=input.next();
symbolz=symbol.charAt(0);
如果(长度50 |宽度50){
系统输出打印(“输入错误”);
System.out.println();
继续;}
{
对于(yWidth=1;yWidth=长度;xLength--){
系统输出打印(symbolz);
}
系统输出打印(“”);
}
}
}
}
}
}错误在这里:

  if (length<=0||length>50||width<=0||width>50){
       }    // --> Error: if input outside range then we have to use continue or exit.
        System.out.print("error in input");{   // Message must be in previous if 
if(长度50 | |宽度50){
}//>错误:如果输入超出范围,则必须使用“继续”或“退出”。
System.out.print(“输入错误”);{//消息必须在上一个if中
使用以下命令:

  if((length<=0 || length >50) || (width<=0 || width>50))
       {
         System.out.println("Error in input");
       } 
if((长度50)| |(宽度50))
{
System.out.println(“输入错误”);
} 

希望这可以解决您的问题。

这是最好的方法还是我应该使用If语句?取决于您希望如何执行。您需要阅读用户输入并验证。如果无效,请打印消息并再次提示。如果有效,请处理,并根据您的应用程序再次提示。通常,每次输入只需打印一次消息即可切换到if语句,现在是在所有输入中插入“error in input”,并且无论发生什么情况都打印矩形。验证长度和宽度的if语句在输入前有一个分号{所以if语句有一个null-then语句,所以打印一直在进行。我去掉了分号,它仍然在做与始终输入“用户输入中的错误”相同的事情。对于我不熟悉的问题,我很抱歉。