#java #java.util.scanner
Вопрос:
Так что в этой программе мне в основном не хватает пары вещей:
- Убедитесь, что заработная плата составляет не менее 0
- Убедитесь, что количество часов не меньше 40, а также больше 0.
Моя проблема в том, что я не знаю, как к этому подойти. Первоначально я думал, что смогу добавить оператор If в первый оператор If каждого из них, но значение, сохраняемое в сканировании, недоступно до тех пор, пока оно не будет отсканировано, то есть после первого оператора If. Как бы я сделал такое заявление, чтобы проверить это?
Вот код:
import java.util.Scanner; public class PayrollCC{ public static void main (String [] args){ Scanner scan = new Scanner(System.in); double wage=0; int hours=0; boolean bool = false; final int MAXHOURS = 40; do{ System.out.println("Please enter your hourly wage: "); if(scan.hasNextDouble() amp;amp; !scan.hasNextInt()){ wage = scan.nextDouble(); scan.nextLine(); bool = true; } else{ bool = false; scan.nextLine(); } } while(!bool); do{ System.out.println("Please enter how many hours you have worked this week: "); if(scan.hasNextInt()){ hours = scan.nextInt(); scan.nextLine(); if(hours gt; MAXHOURS amp;amp; hours lt; 0){ bool = false; } bool = true; } else{ bool = false; scan.nextLine(); } } while(!bool); double week = (hours*wage); double total = (week); double avg = (week); System.out.println("Week's pay: $" (week) " Total pay: $" (total) " Average pay per week: $" (avg)); } }
Ответ №1:
Вот как бы я это реализовал. Я не знаю, полностью ли это полезно для вас, но если нет, я буду рад ответить на любые вопросы об этом.
import java.util.Scanner; public class PayrollCC{ public static void main (String [] args){ Scanner scan = new Scanner(System.in); double wage = 0; int hours = 0; final int MAX_HOURS = 40; //Get user's wage do { System.out.println("Please enter your wage: "); wage = scan.nextDouble(); } while (wage lt; 0); //Get user's hours worked do { System.out.println("Please enter how many hours you have worked this week: "); hours = scan.nextInt(); } while ((hours gt; 40) || (hours lt; 0)); double week = (hours*wage); double total = (week); double avg = (week); System.out.println("Week's pay: $" (week) " Total pay: $" (total) " Average pay per week: $" (avg)); } }
Комментарии:
1. Если мой ответ был полезен, я был бы признателен, если бы вы могли выбрать эту тему как решенную, или если нет, я был бы рад ответить на любые новые вопросы