Java 而循环永远不会完成
我的课程目标是: 写一份预售有限数量私人音乐会门票的申请。每位买家最多可购买6张门票。不超过75张票可以出售。执行一个程序,提示用户输入所需的票证数量,然后显示剩余票证数量。在实现中使用while循环。重复此操作,直到所有门票都售出,然后显示买家总数 我的循环关闭似乎有问题,因为即使循环变量达到其条件限制,它仍然会提示输入票证数量。知道为什么吗Java 而循环永远不会完成,java,loops,while-loop,Java,Loops,While Loop,我的课程目标是: 写一份预售有限数量私人音乐会门票的申请。每位买家最多可购买6张门票。不超过75张票可以出售。执行一个程序,提示用户输入所需的票证数量,然后显示剩余票证数量。在实现中使用while循环。重复此操作,直到所有门票都售出,然后显示买家总数 我的循环关闭似乎有问题,因为即使循环变量达到其条件限制,它仍然会提示输入票证数量。知道为什么吗 import java.util.Scanner; public class TicketCounterHorn { public static
import java.util.Scanner;
public class TicketCounterHorn {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int ticketsToBuy;
int totalTickets =75;
int buyers = 0;
int ticketMax = 6;
while (totalTickets >= 0) {
System.out.print("How many tickets would you like to purchase: ");
ticketsToBuy = in.nextInt();
if (ticketsToBuy <= ticketMax && ticketsToBuy > 0) {
if (ticketsToBuy < totalTickets) {
totalTickets = totalTickets - ticketsToBuy;
buyers++;
System.out.println(ticketsToBuy);
System.out.println(buyers);
System.out.println(totalTickets);
}
}
}
System.out.println("the total number of buyers is: " + buyers);
}
}
我认为应该将循环条件更改为:
while (totalTickets > 0)
否则,即使没有更多的东西可以卖,你也要继续卖
更新
正如David Conrad在评论中提到的,还有一个问题:
还有第二个问题。ticketsToBuy
if (ticketsToBuy < totalTickets)
也应该是
if (ticketsToBuy <= totalTickets) {
谢谢,我试过了,但即使这样,它也没有显示买主的数量,只是不断地问有多少票。为什么这个答案会被否决?这是一个有效的建议。还有第二个问题。测试if ticketsToBuy