Sto provando diversi esercizi da un libro di programmazione Java. Ho il codice qui sotto:Problema con "while" in Java
import java.io.*;
import java.util.Scanner;
public class Ex420
{
public static void main(String args[])
{
String employeeName = "";
double workHours,excessHours, hourlyRates, grossPay;
Scanner input = new Scanner(System.in);
while (employeeName != "stop")
{
System.out.printf("\nInput employee name or stop to exit: ");
employeeName = input.nextLine();
System.out.printf("Input working hours: ");
workHours = input.nextDouble();
System.out.printf("Input hourly rates: ");
hourlyRates = input.nextDouble();
if (workHours <= 40 & workHours >= 0)
{
excessHours = 0;
grossPay = hourlyRates * workHours;
System.out.printf("%s's gross pay is $%.2f\n", employeeName, grossPay);
}
else if (workHours > 40)
{
excessHours = workHours - 40;
grossPay = hourlyRates * 40 + 1.5 * hourlyRates * excessHours;
System.out.printf("\n%s's worked for %.1f excess hours.\n", employeeName, excessHours);
System.out.printf("%s's gross pay is $%.2f\n", employeeName, grossPay);
}
else
{
System.out.printf("Invalid input. Please try again.");
}
} // end while
} // end main
} // end class Ex420
Il problema è che il ciclo while non sembra funzionare. Ogni volta che inserisco "stop" come employeeName, il programma va avanti. Ho provato a sostituire "stop" con qualsiasi altra stringa e ancora non funziona. Ma quando provo a inizializzare employeeName con "stop", il programma si chiude immediatamente, il che è previsto. Cosa sto facendo di sbagliato qui?
Inoltre, dopo il primo ciclo, il programma salta sempre chiedendo a employeeName. Ho provato a sostituire employeeName = input.nextLine();
con employeeName = input.next();
e non lo salta più. Mi chiedo però, c'è un modo in cui posso farlo saltare l'input quando si utilizza employeeName = input.nextLine();
?
Grazie in anticipo per l'aiuto!
Probabilmente si intende 'while (!" Stop ".equals (employeeName))' per corrispondere al significato del codice di esempio, giusto? – maerics
Mi piace l'espressione 'Yoda' :) – VoodooChild