import java.util.Scanner;
public class SalaryCountingWithMethods {
public static void main (String [] args) {
double hours, salaryPerHour, taxPercent, taxlessSalary, taxPart;
hours = askHours();
salaryPerHour = askSalaryPerHour();
taxPercent = askTaxPercent();
taxlessSalary = countTaxlessSalary(hours, salaryPerHour);
taxPart = taxlessSalary * taxPercent /100;
System.out.println("\nSalary before taxes: " + taxlessSalary);
System.out.println("Tax part of the salary: " + taxPart);
System.out.println("Salary after taxes: " + (taxlessSalary-taxPart));
}
static Scanner reader = new Scanner(System.in);
private static int askHours(){
System.out.print("Type in the number of work hours: ");
int hours = reader.nextInt();
return hours;
}
private static int askSalaryPerHour(){
System.out.print("Type in salary per hour: ");
int perHour = reader.nextInt();
return perHour;
}
public static int askTaxPercent(){
System.out.print("Type in the number of work hours: ");
int taxPercent = reader.nextInt();
return taxPercent;
}
private static double countTaxlessSalary(double hours, double salaryPerHour){
double taxPercent = 0;
double fullSalary = (float)hours * (float)salaryPerHour;
double taxPart = (float)fullSalary * (float)taxPercent /100;
double taxLess = (float)fullSalary - (float)taxPart;
return taxLess;
}
}
Your program returned a none-zero value. You should return 0 from the main() function.
Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.next(Scanner.java:1594) at java.base/java.util.Scanner.nextInt(Scanner.java:2258) at java.base/java.util.Scanner.nextInt(Scanner.java:2212) at SalaryCountingWithMethods.askHours(SalaryCountingWithMethods.java:29) at SalaryCountingWithMethods.main(SalaryCountingWithMethods.java:14)
下面的SalaryCountingWithMethods类要求三个浮点数
问题可能是您正在处理浮点数,但您定义的方法接受Integer
输入。当您给出double而不是integer时,这将导致java.util.InputMismatchException
错误。
private static int askHours(){
System.out.print("Type in the number of work hours: ");
int hours = reader.nextInt();
return hours;
}
您应该接受double作为输入,而不是整数。
private static double askHours(){
System.out.print("Type in the number of work hours: ");
double hours = reader.nextDouble();
return hours;
}
对于其他两个方法AskSalaryPerHour()
和AskTaxPercent()
也应该这样做。
3.6 基址加变址寻址方式 操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容之和。其有效地址的计算公式如右式所示。 在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则缺省的段寄存器为SS;否则,缺省的段寄存器为DS。 例3.4 假设指令:MOVBX, [BX+SI],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0011H,
3.7 相对基址加变址寻址方式 操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。其有效地址的计算公式如右式所示。 在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则其缺省的段寄存器为SS;否则,其缺省的段寄存器为DS。 指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号
我有另一个名为ProgramWindow的类,在这个类中,我将图像编辑器的所有不同JPanels添加到一个主JFrame,我认为这可能是我的问题所在,因为BufferedImage是空的。以下是ProgramWindow的代码: 我已经得出结论,ProgramWindow中的ButtonPanel传递了一个空参数,但我不知道为什么会这样。我在ImagePanel类中有一个名为getImg的方法,我
周五晚上,绝影和往常一样回家。这是他和他们这些大学生唯一不同的地方:他家和大学在一个城市,每周五就可以回家。这样做的好处有两点:一、每周只有五天要用生活费;二、可以不用自己洗衣服,冬天的衣服,直接穿回家换就好了,夏天的,打包回家换。 这周过来,他和平时有点不一样,土匪见他提了两本书,一本《鲁迅杂文全集》,一本《PC汇编语言程序设计》。 土匪对这两本书没都没啥兴趣,他喜欢看武打小说,是“武打”小说,
4. 寻址方式 通过上一节的例子我们了解到,访问内存时在指令中可以用多种方式表示内存地址,比如可以用数组基地址、元素长度和下标三个量来表示,增加了寻址的灵活性。本节介绍x86常用的几种寻址方式(Addressing Mode)。内存寻址在指令中可以表示成如下的通用格式: ADDRESS_OR_OFFSET(%BASE_OR_OFFSET,%INDEX,MULTIPLIER) 它所表示的地址可以这样
在 Go 语言中通过首字母大小写来控制变量、函数、方法、类型的公私有 如果首字母小写,那么代表私有,仅在当前包中可以使用 如果首字母大写,那么代表共有,其它包中也可以使用 package demo import "fmt" var num1 int = 123 // 当前包可用 var Num1 int = 123 // 其它包也可用 type person struct {