我们的老师让我们创建一个关于给定情况的java程序,即使用if/else的每小时工资率,这就是我得出的结果,我对此感到高兴(我只是一个初学者)。接下来的指令是用switch语句替换if/else。他还没有讨论switch语句。我试图搜索它们,但我无法理解。请帮忙。非常感谢。
这就是确切的指示:1。使用if/else构造编写一个程序,该程序将根据工作小时数计算人员工资。注意ff:工资率为每小时35菲律宾比索。40小时后的任何工作时间都将按正常小时工资的1.5倍支付工资。计算并显示正常工资、加班工资和总工资。2、用switch语句替换if/else构造,修改以前的工作。
import java.util.Scanner;
public class Payment2 {
public static void main (String [] args){
Scanner input=new Scanner(System.in);
double hours;
double Prph = 35; //Prph means Pay rate per hour//
System.out.println("Enter your working hours:");
hours=input.nextDouble();
if (hours <= 40){
System.out.println("Your pay rate for the day is Php "+hours * Prph);
}
else if (hours > 40){
double Ovtime= hours - 40;
double NPay= hours * Prph;
double OvPay= Ovtime * 52.5;
System.out.println("Normal Pay: Php "+ NPay);
System.out.println("Overtime Pay: Php " + OvPay);
System.out.println("\nYour total pay rate is: Php "+ (NPay+OvPay));
}
}
}
String TimeUsed = (hours<=40)?"Normal":"Overtime";
switch(TimeUsed)
{
case "Normal":
// 35 to pay
break;
case "Overtime":
// 1.5 times of 35 to pay
break;
}
在您的情况下,可以尝试使用字符串、int、char或Enum来练习切换大小写
此外,在Java中,您不能直接定义switch的范围(看看这个QA:在Java中,在每种情况下都使用带有值范围的switch语句?),在这种特殊情况下,您可以尝试这样做,只是为了向您的老师表明,您确实理解开关运算符:
switch((int)(hours/40)) {
case 0: case 1: {
System.out.println("Your pay rate for the day is Php "+hours * Prph);
break;
}
default: {
double Ovtime= hours - 40;
double NPay= hours * Prph;
// other stuff
}
}
我写下这篇文章也许是为了举例说明,但我认为你的问题需要重新审视。
int a = hours<=40?0:1;
switch(a){
case 0:
//do <=40 stuff.
break;
case 1:
//do >40 stuff.
break;
}
通过这种方式,您可以描述任意数量(当然是整数)的案例并打开它们。
我想用Python编写一个函数,根据输入索引的值返回不同的固定值。 在其他语言中,我会使用或语句,但Python似乎没有语句。在这个场景中,推荐的Python解决方案是什么?
基于SO上的各种线程(例如。用设计模式替换多个If\Else或用模式替换if else语句)我知道我可以用< code >命令模式替换多个< code>if\else语句。 但对于我这个级别的人来说,答案远不是简单或详细的。我会有60个会阻塞。我做了一些研究,发现命令模式是最好的。搜索关于如何一步一步的教程似乎很难,因为我发现的都是复杂的事情。相信我,如果我没有在网上做大量的重新搜索和放弃,我不会
我有一个if else语句,它可能会在不久的将来增长。 因为,这看起来已经很乱了,我想如果我能在这里应用任何设计模式会更好。我研究了战略模式,但我不确定这是否会降低其他条件。有什么建议吗?
尝试基于列值替换字符串,获取错误值error:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。 获取错误值错误:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。 我只需要检查字符串,如果匹配,则用另一个列值替换它
null 代码如下所示: 和我想提高的班级: 我该怎么办?每个字段都在使用,但每个触发器都在使用。另外,这种情况有点特殊(OnFinalMethod需要参数)。基于上面的文章,我尝试重构这段代码,但没有成功。 你知道吗?:)
问题内容: 告诉我 少于3个分支的交换机效率低下,请改用if语句。 这是为什么?为什么是3?他们如何定义效率? 问题答案: 因为语句是使用两个特殊的JVM指令和编译的。在处理很多案例时它们很有用,但是当您只有很少的分支机构时,它们会导致开销。 相反,一条语句被编译为典型的 …链,这些链速度更快,但在长分支链中使用时需要更多的比较。 您可以通过查看字节码来看到差异,无论如何我都不担心这些问题,如果有