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

哨兵值不退出while循环

邹嘉石
2023-03-14

//在下面的程序中,在内部,当用户收到指令时,他可以简单地进入哨兵退出while循环,但是,当您得到希望购买的票的结果时,按999并不退出程序

import java.io.*;

public class ManyTickets
{

  public static void main (String [] args) throws IOException
  {
  String userInput;
  String userInput2;
  int intInput = 0;
  int intInput2 = 0;
  double total = 0.00;
  BufferedReader ageInput = new BufferedReader (new InputStreamReader (System.in));
  try{
    System.out.println("Please enter your age, or press '999' to exit.");
    userInput = ageInput.readLine();
    intInput = Integer.parseInt (userInput);
    while (intInput != 999)
    {
      if (intInput < 0 || intInput > 110)
        System.out.println("Invalid entry, or your age seems a bit too high to enter buy these tickets");
      else if (intInput <= 12)
      {
        total = total + 6;
        System.out.println("The ticket cost for 1 ticket is " + total);
      }
      else if (intInput <= 64)
      {
        total = total + 11;
        System.out.println("The ticket cost for 1 ticket is " + total);  
      }
      else
      {
        total = total + 8;
        System.out.println("The ticket cost for 1 ticket is $" + total);
      }
      System.out.println("So far, your tickets cost is: $" + total  );
      System.out.print("Would you like to buy more tickets? You can buy up to 1 more ticket per customer! If no press 999 to exit");
      userInput = ageInput.readLine();
      intInput2 = Integer.parseInt (userInput);  
      }
    }catch (NumberFormatException e){
       System.out.println("Please restart the program, and enter an integer instead!");
    }
  } 
  {
    double total = 0.0;
    System.out.println("Thank you,  The total cost for the ticket is: $" + total);
    System.out.println("Have a nice day!");
  }
}

共有1个答案

陶英达
2023-03-14

在用户输入999后,您不做任何事情。当其为999时,按如下所示中断循环,

intInput2 = Integer.parseInt(userInput);

if (intInput2 == 999) {
 break;
}
 类似资料:
  • 主要内容:一、哨兵,二、源码分析,三、总结一、哨兵 Sentinel(哨兵),听名字大家都应该想得到这个家伙是做什么的。在redis的应用中,有单机模式、主从模式、哨兵模式和集群模式,其实你从它的发展就可以看出来,redis是从一个简单的应用开始,不断的壮大,从单点到分布式,从简单的主从备份以及初始的哨兵监控,再到可以看成把二者合成的集群模式,除了是应用场景的变化,更多的是为了提高安全性和高可用性。网上有很多人问哨兵和集群有啥不一样,其实

  • 每一个哨兵都可以连接到我的主人,并可以看到奴隶。它们能够独立地检测主从是否倒下。问题是哨兵们无法探测到对方。 我已经验证了每个哨兵都像预期的那样向通道发布消息,但似乎没有一个哨兵真正从其他哨兵通道接收消息。 我怎么让哨兵们见面?

  • 问题内容: 在下面的代码中,我希望循环在+ + =时立即退出。但是,使用语句进行测试表明它一直持续到循环完成为止。我尝试过,然后在语句集中进行设置,但这会导致无限循环。我认为使用然后设置可能有效,但也可以一直运行到循环结束为止。什么是最优雅,最快的退出方式?谢谢。 问题答案: 该循环将只匹配条件时,当控制返回到它,即循环完全执行。因此,这就是即使满足条件也不会立即退出程序的原因。 但是,如果条件没

  • 出现的问题是,当用户确实输入了一个正数时,它仍然忽略输入,并要求用户再次输入一个正整数。我想我只是没有正确退出循环,但我不确定是如何退出的。

  • 所以我这里有一个程序,它只是简单地模仿跳棋(但不是跳,而是一个棋子简单地“吃掉”另一个棋子)。我有一个简单的类,它实现了一个“checkers”类对象,并创建了一个名为“chips”的int数组变量。还有一个“while”语句,它在chip[0]和chips[1]整数大于0时创建了一个循环。看起来是这样的: Checkers类中的count方法如下所示: 板是8 x 8(这就是board.leng

  • 寻找一种干净的方法来将源代码转换为在一段时间内不发出项后发出单个(或哨兵值)。 例如,如果源observable发出,然后在发出之前停止发出10秒,我希望发出的项为。 我研究了运算符,但是当超时发生时,它会终止,这是不希望的。 使用RXJava。