Измените приложение программы расчета заработной платы, чтобы оно продолжало запрашивать информацию о делении до тех пор, пока пользователь не войдет в качестве имени разделения. Кроме того, запрограммируйте приложение, чтобы проверить, что количество сотрудников и средняя зарплата на одного сотрудника являются положительными. Если количество сотрудников или средняя зарплата на одного сотрудника не является положительным, приложение должно предлагать пользователю ввести положительную сумму.Простая программа расчета заработной платы
Это код, который я придумал, который компилируется отлично, но не работает так, как я ожидаю.
import java.util.Scanner; //program uses class SCanner
public class PayrollPart2
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in); // create Scanner to obtain input from command window
// variables
char name; // divisions's name
int number1; // number of employees in the division
double number2; // average salary for the employees
double product; // total division payroll
//prompt user to input division name
System.out.print("Enter Division's name, type stop to exit: ");
String divisionName = input.nextLine(); //read line of text
while (divisionName !="stop")
{
//prompt user for number of employees in the division
System.out.print("Enter the number of employees in the division: ");
//read number of employees from user's input
number1 = input.nextInt();
while (number1 <= 0)
{
System.out.print("Please enter a positive number of employees in the division:"); // prompt
number1 = input.nextInt(); // input
}
//prompt user to enter average salary of employees
System.out.print("Enter average salary for the employees: ");
//read average salary
number2 = input.nextDouble();
while (number2 <= 0)
{
System.out.print("Please enter a positive number for the employees salary:"); // prompt
number2 = input.nextDouble(); // input
}
//multiply Number1 by Number2
product = number1 * number2;
//displays division and total division payroll
System.out.printf("The division %s has a payroll of $%.2f\n" , divisionName, product);
}
} //end method main
} // end class PayrollPart2
Я был у него около 8 часов, и в этот момент я полностью потерялся на следующих шагах. Код проходит через цикл, но не запрашивает другое имя раздела. Ввод команды exit в первом приглашении фактически не выходит из цикла. Должен ли я использовать операторы If/Else вместо этого? Я думаю, что могу использовать Boolean, но я не совсем уверен, как его реализовать.
Кроме того, 'divisionName' никогда не меняется в цикле. Таким образом, он либо пропускается полностью, либо бесконечный цикл. – jlordo
Ну, я бы не назвал это дубликатом; плакат не спрашивает явно о сравнении 'String'. –
@ DennisMeng - Завершение вопроса как дубликата не обязательно является отражением в вопросе или в OP. Дело в том, чтобы избавиться от Вопросов, которые не помогут другим людям в будущем. И этот вопрос не будет. ИМО, это настоящий хорошо спрошенный вопрос (+1) ... но это еще один пример того, кто-то сравнивает строки неправильным образом и, следовательно, дублирует. –