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

Java,使用多个条件语句的问题,while-loop,for-loop,if语句

鲜于承基
2023-03-14

我正在做一个项目,帮助客人报名参加派对。

当事人必须存在于数据

当然,想要的票的数量必须少于可用的票

我真的很难再添加一个条件——检查输入是否高于0。

我将整个for循环放入了另一个if语句中,正如您所看到的:if(ticketsWanted)

如果输入了低于1的内容,它会打印“请输入正数”

然而,它也打印了“这个派对不存在或者已经预订满了。”又来了...

基本上是在系统之后。出来println(“请输入正数”);我希望程序提供一个选项,可以再次输入数字,直到它为正

以下是我的问题:

如何使用while循环,使其循环直到输入正数?

有没有更有效/更好的方法来做我打算做的事情?

谢谢你

 private static void signUp2(Guest validGuest){

              input.nextLine();
              System.out.println("Enter the name of the party");
              String partyName = input.nextLine();
              System.out.println("How many tickets the guest wishes to purchase?");
              int ticketsWanted = input.nextInt();
              boolean check = false;

              if(ticketsWanted > 0) {
               for(Party p: parties){
                 if(p.getPartyName().equals(partyName)){
                     if(ticketsWanted > e.getTickets()){
                 }
                   else{
                     check = true;  
                     validGuest.AddPartiesAndTickets(p, ticketsWanted);
                    }

                 }
              }
            }
             else{
                System.out.println("Please enter a positive number");

               }

            if(check == false){
            System.out.println("This party does not exist or is fully booked.");

共有3个答案

桂嘉年
2023-03-14
 Using the continue keyword


   boolean check = false;
    boolean valid = false;

   while(valid == false){
   Sop( " how many tickets? ");
   ticketsWanted = input.nextInt ();
   if  (ticketsWanted < 0)  
       continue ;
   else   
    {
  valid = true;
// Rest of the code
 }

}

施永贞
2023-03-14

下面是一个非常简单的方法,当提示输入大于0的整数时,可以使用它确保用户输入正确的值。

  public static int getNumberGreaterThanZero(String prompt)
  {
      int number = 0;
      while(number == 0)
      {
          System.out.println(prompt);
          String inputFromUser = input.nextLine();
          //check if input matches any negative or positive number
          if(inputFromUser.matches("-\\d+|\\d+"))
          {
              number = Integer.parseInt(inputFromUser);
              if(number <= 0)
              {
                  System.out.println(number + " is not greater than 0");
                  number = 0; //have them try again
              }
          }
          else
              System.out.println("Error - " + inputFromUser + " is not a valid number");

      }
      return number;
  }

然后你可以像这样从你的其他方法调用它

          System.out.println("Enter the name of the party");
          String partyName = input.nextLine();
          int ticketsWanted = getNumberGreaterThanZero("How many tickets the guest wishes to purchase?");
          ...
公西姚石
2023-03-14

添加以下方法

int getNumberTickets() {
    System.out.println("How many tickets the guest wishes to purchase?");
    int ticketsWanted = input.nextInt();
    return(ticketsWanted);
}

并称之为使用:

int ticketsWanted = 0;
do {
    try {
       ticketsWanted = getNumberTickets();
       if (ticketsWanted < 1)
          throw new RuntimeException("Unused");
     catch(Throwable e) {
         ticketsWanted = -1;
         System.out.println("Invalid amount");
     }
while (ticketsWanted < 1);
 // now do your checks
 类似资料:
  • 我试图运行一些类似于下面的代码...我想我对for循环有一个根本性的误解。我想迭代一个for循环,如果每次迭代的条件都满足(X==True),我想完成那个迭代,如果它不满足/否则我想看看它是否满足第二个条件(Z==True)...如果是这样,我想继续做事情2,并在条件为真时将其计算为迭代,一旦它不再为真,我希望它运行另一个for循环做事情3 5次,然后在下一次迭代中返回到原始if语句。如果第二个条

  • 本章将指导您完成Scala编程语言中的循环控制结构。 当您需要多次执行代码块时,可能会出现这种情况。 通常,语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。 编程语言提供各种控制结构,允许更复杂的执行路径。 循环语句允许我们多次执行语句或语句组,以下是大多数编程语言中循环语句的一般形式 - 流程图 (Flow Chart) Scala编程语言提供以下类型的循环来处理循环需

  • 有些任务需要一遍又一遍地完成,比如读取文件的每个记录直到结束。 COBOL中使用的循环语句是 - 通过执行 执行直到 执行时间 执行变化 通过执行 Perform Thru用于通过给出序列中的第一个和最后一个段落名称来执行一系列段落。 执行最后一段后,将返回控件。 In-line Perform PERFORM中的语句将被执行,直到达到END-PERFORM。 语法 (Syntax) 以下是在线执

  • 我在尝试为do while循环执行try catch时遇到了一些问题:

  • 我最近开始学习静态编程语言,我注意到静态编程语言的for循环语法不同于传统的for循环语法,对我来说有点困惑...我试图在谷歌上搜索它,但没有得到我的答案。 如何复制下面的Java for循环?

  • 关于或语句中使用的return语句,我有一个问题。正如您在下面的方法中所看到的,希望I一个字符串值。问题是,如果在语句块中使用语句,编译器将返回错误。 当然,我可以将方法头更改为,并使用而不是。但这是正确的做法吗?我是不是漏掉了什么? 任何帮助都是非常感谢的。