Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用嵌套while循环?在爪哇_Java_While Loop_Nested_Nested Loops - Fatal编程技术网

Java 如何使用嵌套while循环?在爪哇

Java 如何使用嵌套while循环?在爪哇,java,while-loop,nested,nested-loops,Java,While Loop,Nested,Nested Loops,我想现在如何才能解决这个程序的最后一部分,我不知道我用什么 这是最后一部分 曲: 您已经有两个循环,即: while (day <= 5) { //for week day //blah blah } while (day <= 7) { //for weekend //blah blah } 在外部while循环中,您需要: overtime = 0; if (hoursWorked>8) overtime = (hoursWorked-8)*(ra

我想现在如何才能解决这个程序的最后一部分,我不知道我用什么

这是最后一部分

曲:


您已经有两个循环,即:

while (day <= 5) { //for week day
    //blah blah
}
while (day <= 7) { //for weekend
    //blah blah
}

在外部while循环中,您需要:

overtime = 0;
if (hoursWorked>8)
    overtime = (hoursWorked-8)*(rateOfPay*1.5) - (hoursWorked-8)*rateOfPay;        // Calculate OVERTIME HOURS
将每次迭代的加班时间设置为零,您必须减去加班时间的正常费率,否则将加两次

然后你必须在工资中加上加班费:

wages += (hoursWorked * rateOfPay) + overtime;
将其全部放在do while循环中,并在开始时设置day=1,如下所示:

String choice = "Y";
do {
    day=1;
    while (day <= 5) // on weekday
...
对于您的额外问题,请在开始时回答:

double totalWages = 0;
String choice = "Y";
do {
    day=1;
    wages = 0;
...
最后:

...
    } //end while loop for weekend.

    choice = JOptionPane.showInputDialog(null, "Do you want to calculate another weeks wages -Yes or No?", "TRY AGIN", JOptionPane.PLAIN_MESSAGE);

} while (choice.equals("Y") || choice.equals("y"));
JOptionPane.showMessageDialog(null, "Pay this week is £" + wages, "Pay", JOptionPane.PLAIN_MESSAGE);
...
    JOptionPane.showMessageDialog(null, "Pay this week is £" + wages, "Pay", JOptionPane.PLAIN_MESSAGE);
    choice = JOptionPane.showInputDialog(null, "Do you want to calculate another weeks wages -Yes or No?", "TRY AGIN", JOptionPane.PLAIN_MESSAGE);
    totalWages += wages;

} while (choice.equals("Y") || choice.equals("y"));
JOptionPane.showMessageDialog(null, "Pay total is £" + totalWages, "Pay", JOptionPane.PLAIN_MESSAGE);

这是测试的一个例子

还有我的fanal密码

导入javax.swing.*;//程序使用Joptionpane 公共级HW3{ //main方法开始执行Java应用程序 公共静态无效字符串[]args{ //可变规格 双倍支付率=4.5; 工作时间内=0; 双倍工资=0.0; 整日=1; 双倍加班=0; 字符串选择=Y; 做{ 日=1; 而第8天 加班=工作小时数-8*rateOfPay*1.5;//计算加班小时数 虽然工作时间>24//这是额外的,但在工作时间少于24小时之前仍然是错误的。 { JOptionPane.showMessageDialognull,工作时间大于每天24小时, 错误,JOptionPane.PLAIN\u消息; 工时=0; 小时数=作业窗格。showInputDialognull,输入当天的工作小时数:+day, 再次尝试,JOptionPane.PLAIN\u消息; hoursWorked=Integer.parseInthours; }//在执行时结束额外操作。 工资+=工作小时数*工资率+加班费; 天=天+1; }//结束工作日的while循环。 虽然第24天是额外的,但在时间少于24小时之前仍然是错误的。 { JOptionPane.showMessageDialognull,工作时间大于每天24小时, 错误,JOptionPane.PLAIN\u消息; 工时=0; 小时数=作业窗格。showInputDialognull,输入当天的工作小时数:+day, 再次尝试,JOptionPane.PLAIN\u消息; hoursWorked=Integer.parseInthours; }//在执行时结束额外操作。 工资+=工作小时数*报酬率*2+加班费; 天=天+1; }//周末结束时循环。 showMessageDialognull,本周工资为+工资,工资,JOptionPane.PLAIN\u消息; choice=JOptionPane.showInputDialognull,是否要计算另一周的工资-是或否?, 计算另一周工资,JOptionPane.PLAIN_消息; }而choice.equalsY | | choice.equalsY; showMessageDialognull,本周工资为+工资,工资,JOptionPane.PLAIN\u消息; }//结束方法主
}//end class HW3学习缩进代码,这样代码的结构就不明显了。正如所写的,它完全不可读。所有IDE都是通过一个键盘快捷键来实现的。@JBNizet您的意思是什么?如果您不知道缩进代码是什么,那么一定是出了严重的问题。请在此处查看各种样式的代码:。所有这些都允许理解代码的结构。您的代码没有,因为行从随机位置开始,并且也是随机间隔的。@JBNizet OK谢谢。这对我来说是一件新鲜事。我是一个编程初学者:应该给出一些部分代码,告诉我们你试图解决这个问题,但它不起作用!我想在joptionpan u uu字符串userInput=JOptionPane.showInputDialognull中使用它,是否要计算另一周的工资?是还是否如何将字符串转换为字符您可以将“本周付款…”放在循环内,并在循环外添加另一个“总付款…”我希望测试数据和输出应与此支票相同我的答案在底部请@谢谢你的帮助。大心脏:
...
    JOptionPane.showMessageDialog(null, "Pay this week is £" + wages, "Pay", JOptionPane.PLAIN_MESSAGE);
    choice = JOptionPane.showInputDialog(null, "Do you want to calculate another weeks wages -Yes or No?", "TRY AGIN", JOptionPane.PLAIN_MESSAGE);
    totalWages += wages;

} while (choice.equals("Y") || choice.equals("y"));
JOptionPane.showMessageDialog(null, "Pay total is £" + totalWages, "Pay", JOptionPane.PLAIN_MESSAGE);