Java中“while”的问题
发布时间:2020-05-24 18:51:15 所属栏目:Java 来源:互联网
导读:我正在尝试 Java编程书中的几个练习.我有以下代码: import java.io.*;import java.util.Scanner;public class Ex420{ public static void main( String args[] ) { String employeeName = ; double workHours,excessHours, h
|
我正在尝试 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 $%.2fn",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",excessHours );
System.out.printf( "%s's gross pay is $%.2fn",grossPay );
}
else
{
System.out.printf( "Invalid input. Please try again." );
}
} // end while
} // end main
} // end class Ex420
问题是,while循环似乎不起作用.每当我输入“stop”作为employeeName时,程序就会继续.我尝试用任何其他字符串替换“停止”,它仍然无法正常工作.但是当我尝试使用“stop”初始化employeeName时,程序会立即退出,这是预期的.我在这做错了什么? 此外,在第一个循环之后,程序总是跳过询问employeeName.我尝试替换employeeName = input.nextLine(); with employeeName = input.next();它不再跳过它.我想知道,有什么办法可以让我在使用employeeName = input.nextLine()时不跳过输入;? 在此先感谢您的帮助! 解决方法我猜这是因为你在while循环中使用的!=测试比较字符串以获得引用相等性.也就是说,当它进行比较时,它不只是测试以查看字符串是否具有相同的字符序列;它检查它们是否是完全相同的对象.但是当Scanner创建一个String来包含它从标准输入读取的文本时,该String不会与代码中字符串文字“stop”的对象相同.它们是恰好具有相同内容的两个对象,但它们存在于内存中的不同位置,因此!=将它们视为不相等.解决方案:改为开始你的循环: while (!"stop".equals(employeeName)) { (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Java编程接口调用的作用及代码分享
- 如何让Command-W在Java或Clojure的Mac OS上关闭窗口
- java – JPA illegalStateException – CascadeType问题
- java – 启动外部JAR文件需要什么,比如Minecraft启动程序?
- 为什么Java的scheduleWithFixedDelay使用Runnable而不是Fut
- java基数排序算法
- Java异常try-catch异常与IOException
- Java:如何存储对类的所有实例的引用?
- java – Jersey 2使用方法参数生成WADL模式
- 聊聊springmvc中controller的方法的参数注解方式
