Java 程序将不会转到else语句
如果您输入的座位太多,该程序将打印错误。如果我输入的座位数无效,例如:经济舱有8个座位。但是如果我输入一个大于它的数字,程序不会继续执行else语句并打印错误消息 相反,它只是遍历if语句并使用无效的座位号进行计算Java 程序将不会转到else语句,java,if-statement,Java,If Statement,如果您输入的座位太多,该程序将打印错误。如果我输入的座位数无效,例如:经济舱有8个座位。但是如果我输入一个大于它的数字,程序不会继续执行else语句并打印错误消息 相反,它只是遍历if语句并使用无效的座位号进行计算 import java.util.Scanner; public class FlightProfit { String location; int TOLEDO_FARE = 200; int HOUSTON_FARE = 300
import java.util.Scanner;
public class FlightProfit
{
String location;
int TOLEDO_FARE = 200;
int HOUSTON_FARE = 300;
int BOISE_FARE = 400;
int economySeats;
int businessSeats;
int firstClassSeats;
int economySales;
int businessSales;
int firstClassSales;
//int totalSales = economySales + businessSales + firstClassSales;
Scanner in = new Scanner(System.in);
public int addEconomySeats()
{
System.out.print("Enter number of economy seats 1-8: ");
economySeats = in.nextInt();
if(economySeats > 0 || economySeats < 9)
{
return economySeats;
}
else
{
System.out.println("Error: Only 8 seats available in economy.");
}
return 0;
}
public int addBusinessSeats()
{
System.out.print("Enter number of business seats sold: ");
businessSeats = in.nextInt();
if(businessSeats > 0 || economySeats < 7)
{
return businessSeats;
}
else
{
System.out.println("Error: Only 6 seats available in business.");
}
return 0;
}
public int addFirstClassSeats()
{
System.out.print("Enter number of first class seats sold: ");
firstClassSeats = in.nextInt();
if(firstClassSeats > 0 || firstClassSeats < 5)
{
return firstClassSeats;
}
else
{
System.out.println("Error: Only 4 seats available in first class.");
}
return 0;
}
public void getProfit(String loc)
{
location = loc;
if(location.equalsIgnoreCase("toledo"))
{
economySales = economySeats * TOLEDO_FARE;
businessSales = businessSeats * (2 * TOLEDO_FARE);
firstClassSales = firstClassSeats * (4 * TOLEDO_FARE);
System.out.println("Economy Sales: " + economySeats + " seats: " + economySales);
System.out.println("Business Sales: " + businessSeats + " seats: " + businessSales);
System.out.println("First Class Sales: " + firstClassSeats + " seats: " + firstClassSales);
//System.out.println("Total Sales: " + totalSales);
}
else if(location.equalsIgnoreCase("houston"))
{
economySales = economySeats * HOUSTON_FARE;
businessSales = businessSeats * (2 * HOUSTON_FARE);
firstClassSales = firstClassSeats * (4 * HOUSTON_FARE);
System.out.println("Economy Sales: " + economySeats + " seats: " + economySales);
System.out.println("Business Sales: " + businessSeats + " seats: " + businessSales);
System.out.println("First Class Sales: " + firstClassSeats + " seats: " + firstClassSales);
// System.out.println("Total Sales: " + totalSales);
}
else
{
economySales = economySeats * BOISE_FARE;
businessSales = businessSeats * (2 * BOISE_FARE);
firstClassSales = firstClassSeats * (4 * BOISE_FARE);
System.out.println("Economy Sales: " + economySeats + " seats: " + economySales);
System.out.println("Business Sales: " + businessSeats + " seats: " + businessSales);
System.out.println("First Class Sales: " + firstClassSeats + " seats: " + firstClassSales);
//System.out.println("Total Sales: " + totalSales);
}
}
}
import java.util.Scanner;
公营航班利润
{
字符串位置;
国际托莱多票价=200;
国际休斯敦票价=300;
国际博伊西票价=400;
国际经济测试;
国际商务座位;
国际头等舱座位;
国际经济学杂志;
国际商业销售;
国际一流销售;
//int totalSales=economySales+businessSales+firstClassSales;
扫描仪输入=新扫描仪(系统输入);
公共整数addeconomicyseats()
{
系统输出打印(“输入经济舱座位数1-8:”);
EconomySets=in.nextInt();
如果(经济测试>0 | |经济测试<9)
{
返回经济测试;
}
其他的
{
System.out.println(“错误:经济舱只有8个座位可用。”);
}
返回0;
}
公共int addBusinessSeats()
{
System.out.print(“输入售出的商务座位数量:”);
businessSeats=in.nextInt();
如果(商务座位>0 | |经济舱<7)
{
返回商务座位;
}
其他的
{
System.out.println(“错误:只有6个席位可供商务使用。”);
}
返回0;
}
public int addFirstClassSeats()
{
System.out.print(“输入售出的头等舱座位数:”);
firstClassSeats=in.nextInt();
如果(头等舱座位>0 | |头等舱座位<5)
{
返回头等舱座位;
}
其他的
{
System.out.println(“错误:头等舱只有4个座位。”);
}
返回0;
}
公共无效获取利润(字符串loc)
{
位置=loc;
if(位置等信号情况(“托莱多”))
{
经济舱=经济舱*托莱多票价;
商务销售=商务座椅*(2*托莱多票价);
头等舱销售=头等舱座位*(4*托莱多票价);
System.out.println(“经济舱销售:+economySeats+”座位:+economySales);
System.out.println(“业务销售:+businessSeats+”席位:+businessSales);
System.out.println(“头等舱销售:+firstClassSeats+”座位:+firstClassSales);
//System.out.println(“总销售额:+totalSales”);
}
else if(位置、同等信号(“休斯顿”))
{
经济舱=经济舱*休斯顿票价;
商务销售=商务座椅*(2*休斯顿票价);
头等舱销售=头等舱座位*(4*休斯顿票价);
System.out.println(“经济舱销售:+economySeats+”座位:+economySales);
System.out.println(“业务销售:+businessSeats+”席位:+businessSales);
System.out.println(“头等舱销售:+firstClassSeats+”座位:+firstClassSales);
//System.out.println(“总销售额:+totalSales”);
}
其他的
{
经济舱=经济舱*BOISE_票价;
businessSales=businessSeats*(2*BOISE_票价);
头等舱销售=头等舱座位*(4*BOISE_票价);
System.out.println(“经济舱销售:+economySeats+”座位:+economySales);
System.out.println(“业务销售:+businessSeats+”席位:+businessSales);
System.out.println(“头等舱销售:+firstClassSeats+”座位:+firstClassSales);
//System.out.println(“总销售额:+totalSales”);
}
}
}
==主要==
import java.util.Scanner;
public class Aviation
{
public Aviation()
{
}
public static void main(String[] args)
{
int option;
FlightCost newFlight = new FlightCost();
FlightProfit flight = new FlightProfit();
Scanner in = new Scanner(System.in);
System.out.print("Enter new flight location: ");
String location = in.next();
do{
String menu = "\n Please select an option to perform"
+ "\n1 (1) Get flight costs."
+ "\n2 (2) Get flight profits."
+ "\n3 (3) Enter names/meals."
+ "\n4 (4) Exit.";
System.out.println(menu);
option = in.nextInt();
}while (option < 0 || option > 4);
switch(option)
{
case 1:
newFlight.getCost(location);
break;
case 2:
flight.addEconomySeats();
flight.addBusinessSeats();
flight.addFirstClassSeats();
flight.getProfit(location);
break;
case 3:
//newFlight.flyers();
break;
case 4:
System.out.println("Exit");
break;
default:
System.out.println("Error: must select menu option.");
}
}
}
import java.util.Scanner;
公营航空
{
公共航空()
{
}
公共静态void main(字符串[]args)
{
int选项;
FlightCost newFlight=新的FlightCost();
FlightProfit飞行=新的FlightProfit();
扫描仪输入=新扫描仪(系统输入);
系统输出打印(“输入新航班位置:”);
字符串位置=in.next();
做{
字符串菜单=“\n请选择要执行的选项”
+“\n1(1)获取飞行成本。”
+“\n2(2)获取航班利润。”
+“\n3(3)输入姓名/膳食。”
+“\n4(4)退出。”;
系统输出打印项次(菜单);
option=in.nextInt();
}而(选项<0 | |选项>4);
开关(选件)
{
案例1:
newFlight.getCost(位置);
打破
案例2:
flight.addEconomySeats();
航班号:addBusinessSeats();
flight.addFirstClassSeats();
航班。获取利润(地点);
打破
案例3:
//newFlight.flyers();
打破
案例4:
System.out.println(“退出”);
打破
违约:
System.out.println(“错误:必须选择菜单选项”);
}
}
}
如果(经济测试>0 | |经济测试<9)
这个条件总是正确的(因为任何数字要么是正的,要么小于9),所以当然不能到达else子句
您可能需要&&
(and)运算符:
if(EconomySets>0和&EconomySets<9)
而您的其他条件也有相同的错误。if(economysets>0&&economySe
if (economySeats > 0 && economySeats < 9)
Range economySeatsRange = Range.atLeast(1).atMost(8);
//...
boolean inAllowedRange = economySeatsRange.apply(economySeats);
if(inAllowedRange)
// between 1 and 8
else
// signal error