我的代码需要通过3个不同的问题来计算ISP服务的成本。包的选择(1,2,3)是哪个月:(1-12)使用多少小时:(x)
我把月份分成了3个独立的数组。一个是二月份的28天,一个是30天的月份,一个是31天的月份。我需要检查输入的小时数,并确保它不超过他们选择的任何一个月的小时数。我已经开始用这个:
import java.util.Scanner; //Needed for the scanner class
public class ISP_Cost_Calc
{
public static void main(String[] args)
{
String input; //To hold users input.
char selectPackage; //To hold Internet Package
double hourUsage, totalCharges, addCharges; //Variables
Scanner keyboard = new Scanner(System.in); //Create a Scanner object to collect keyboard input.
int[] twentyeightArray; //List of months with 28 days (that's what the te is for)
twentyeightArray = new int[1]; //Make room for one integer in list
twentyeightArray[0] = 2; //Set the one integer in this list to month number 2
int[] thirtyArray; //List of months with 30 days.
thirtyArray = new int[4];
thirtyArray[0] = 4;
thirtyArray[1] = 6;
thirtyArray[2] = 9;
thirtyArray[3] = 11;
int[] thiryoneArray; //List of months with 31 days.
thiryoneArray = new int[7];
thiryoneArray[0] = 1;
thiryoneArray[1] = 3;
thiryoneArray[2] = 5;
thiryoneArray[3] = 7;
thiryoneArray[4] = 8;
thiryoneArray[5] = 10;
thiryoneArray[6] = 12;
//Prompt the user to select a Internet Package.
System.out.print("Enter your plan (1, 2, 3):");
input = keyboard.nextLine();
selectPackage = input.charAt(0);
//Prompt the user for the month.
System.out.print("Enter your month number (1-12):");
input = keyboard.nextLine();
char monthNum = input.charAt(0);
//Prompt the user for how many hours used.
System.out.print("Enter your hours:");
input = keyboard.nextLine();
hourUsage = Double.parseDouble(input);
//Display pricing for selected package...
switch (selectPackage)
{
case '1':
if (hourUsage > 10)
{
addCharges = hourUsage - 10;
totalCharges = (addCharges * 2.0) + 9.95;
System.out.println("You have used " + hourUsage + " hours and your total is $" + totalCharges + " per month. ");
}
else
{
System.out.println("Your total is $9.95 per month.");
}
break;
case '2':
if (hourUsage > 20 )
{
addCharges = hourUsage - 20;
totalCharges = (addCharges * 1.0) + 13.95;
System.out.println("You have used " + hourUsage + " and your total is $" + totalCharges + " per month.");
}
else
{
System.out.println("Your total is $13.95 per month.");
}
break;
case '3':
System.out.println("Your total is $19.95 per month.");
break;
default:
System.out.println("Invalid Choice.");
}
}
}
所以我只需要一些建议,如何将它合并到我的if语句中。谢谢
不创建多个数组,只需使用一个数组,如:
month[0] = 31;
month[1] = 28;//what if leap year?
month[2] = 31;
//and so on
然后可以执行以下操作:
int monthNumber = monthNum - 48;
if (hours > month[monthNumber - 1] * 24) {
//do something
} else {
//else do another thing
}
如果使用包含天数和小时数的Months枚举,而不是对不同天数使用单独的数组,则可能会更容易。
public enum Month {
JANUARY(31),FEBRUARY(28),MARCH(31),APRIL(30),MAY(31),JUNE(30),JULY(31),AUGUST(30),SEPTEMBER(30),OCTOBER(31),
NOVEMBER(30),DECEMBER(31);
private int hours;
private Month(int days){
hours = days*24;
}
public int getHours(){
return hours;
}
}
使用这样的东西可以减少不必要的数组使用,并将所有内容组合到一个类中。这将使获得每个月的天数和小时数变得容易得多。
而不是使用单独的数组来实现月。您可以这样做:
int[] month = {31,28,31,30,31,30,31,31,30,31,30,31};
int[] monthLeapYear = {31,29,31,30,31,30,31,31,30,31,30,31};
您可以先检查给定的年份是否是闰年,然后选择正确的数组用于月份。这样你只需要2个数组-永远。
你可能会有这样的东西帮你。我还建议您在实现中创建一些方法来模块化您的程序。
public static Boolean isLeapYear(int year)
{
if(year % 4 == 0 && year % 100 != 0)
return true;
return false;
}
该数组按索引0-11
排列。这样做就可以结束:
//Let say your current month is 1-12
month[currentMonth-1]
或者,向数组中添加1个元素(这样元素现在就对齐了):
int[] month = {0,31,28,31,30,31,30,31,31,30,31,30,31};
如何在cmd上运行csr生成命令。exe openssl req-节点-newkey rsa: 2048-keyoutwww_mydomain_com.key-outwww_mydomain_com.csr-subj"/C=BB/ST=CCC/L=DDD/O=EEE。/OU=IT/CN=mydomain.com"
不管外观如何不同,每个计算机都可以看成由六个单元(logical unit)或部分组成,即: 1.输入单元(iput unit),这是计算机的“接收”部分,从各种输入设备接收信息(数据和计算机程序),并将这些信息放到其他单元中,使信息得以处理。如今大多数信息都是通过键盘和鼠标设备输入计算机。将来大多数信息也许可以通过语音输入或扫描图形而获得。 2.输出单元(output unit),这是计算机的“
计算机系统由硬件(物理设备)系统和软件(程序、数据、文档)系统组成 硬件系统 冯诺依曼:计算机由运算器、控制器、存储器、输入设备、输出设备组成 CPU 组成 运算器:对内存读/写,数据加工处理,受控制器控制 ALU算术逻辑单元:处理数据,实现算术运算和逻辑运算 AC累加寄存器:为ALU提供运算工作区 DR数据缓冲寄存器:存放CPU、内存、外设之间交换的数据 PSW状态条件寄存器:保存算数/逻辑指令
当我尝试构建项目时。生成失败,出现以下消息。 我看到了两个类似的问题,并尝试了答案中提到的一切。 我尝试过的事情。
我有一张表如下: 让我们把每行称为一次运行。我想数数不。在每个中分别为每个运行。我需要使用函数吗?我已经在列。
是否可以使用JsonPath计算成员数? 使用spring mvc测试,我正在测试一个生成 具有 我想确保生成的json中没有其他成员。希望通过使用jsonPath计算它们。可能吗?也欢迎其他解决方案。