c - 如何跳出循环而不执行该循环中的其他语句?
问题描述
void process(){
int ID;
float hours_employee_worked, hourly_wages_for_employees;
float tax = 0.4;
float overtime = 1.5;
float time_without_overtime, total_overtime;
float total, average;
do {
printf("Enter Employee ID (or -1 to exit): ");
scanf("%d", &ID);
printf("Enter hours worked (e.g 8.5 hours): ");
scanf("%f", &hours_worked);
printf("Enter hourly wage (e.g 20.25): ");
scanf("%f", &hourly_wage);
if (ID == -1)
{
puts("All done");
break;
}
else if (hours_employee_worked <=40)
{
total = hours_employee_worked* hourly_wages_for_employees;
average = total * tax;
average = total - average;
printf("%.2f", average);
}
else if (hours_employee_worked > 40)
{
total_overtime = ((hours_employee_worked- 40) * 1.5) * hourly_wage_for_employees;
total = (40 * hourly_wages_for_employees+ total_overtime) * tax;
time_without_overtime = 40 * hourly_wages_for_employees;
average = time_without_overtime + total_overtime - total;
printf("%f", average);
}
}while (ID != -1);
}
基本上,如果员工 ID 等于 -1,我希望我的程序结束执行。但它仍然继续并在最后中断。在执行完成并且不会跳出循环之前,它不会说“全部完成”。谢谢。
解决方案
如果您希望您可以在检查employee_id 后立即将您的第一个if 语句移至程序顶部,那么您的程序可以正常工作。
推荐阅读
- odbc - 让 Windows 检测 IBM AS400 提供程序
- tsql - 需要一个存储过程,为每个选择计数(*)选择不同的,并将输出格式化为表格
- reactjs - 当用户状态改变时禁用按钮
- jenkins - Jenkinsfile 中的“脚本”步骤 - 权限被拒绝
- azure - PowerShell中的循环问题?
- class - 从同一目录导入类的问题
- sql - 在关键字“pivot”附近出现语法错误,提示语法不正确。我在这里想念什么
- spring - 如果调用两次,JPA 会打开两个会话吗?
- android - Android Material LinearProgressIndicator 不重复
- android - 从 Windows 10 发现 Android 服务