如何在java中将局部变量存储到类变量中?
我正在用Java编写一个交互式应用程序,我的一个局部变量没有将自身添加到类变量中,这会破坏我的最终输出 这里是类变量如何在java中将局部变量存储到类变量中?,java,Java,我正在用Java编写一个交互式应用程序,我的一个局部变量没有将自身添加到类变量中,这会破坏我的最终输出 这里是类变量公共静态双演绎 这就是我想要储存的东西 System.out.println("Do you want medical insurance?"); String choice = kb.nextLine(); if (choice == "yes") { medIns = 32.50; } else { medIns = 0; } System.ou
公共静态双演绎代码>
这就是我想要储存的东西
System.out.println("Do you want medical insurance?");
String choice = kb.nextLine();
if (choice == "yes")
{
medIns = 32.50;
}
else
{
medIns = 0;
}
System.out.println("Do you want dental insurance?");
choice = kb.nextLine();
if (choice == "yes")
{
dentIns = 20.00;
}
else
{
dentIns = 0;
}
System.out.println("Do you want long-term disability insurance?");
choice = kb.nextLine();
if (choice == "yes")
{
lifeIns = 10.00;
}
else
{
lifeIns = 0;
}
deduction = medIns + dentIns + lifeIns;
return deduction;`
下面是它最终进入的totalpay=gross+(gross*retire)-扣减代码>
当我输入所有其他输入时,它没有将本地扣减存储到类扣减中,以便可以将其处理到我的totalpay计算中。您的if/else语句总是错误的!
扣减=medIns+dentIns+lifeIns代码>总是演绎=0+0+0代码>无论输入值是多少,您都会误用==
运算符
==vs.equals()vs.equalsIgnoreCase()
choice==“yes”
不是您在Java中比较字符串的方式,在您的情况下,这永远不会是真的
=
比较标识(左侧是否与右侧完全相同的对象实例),.equals()
和.equalsIgnoreCase()
是比较Java中字符串
对象内容的方式
惯用解决方案
在您的情况下,正确的方法是“yes”。equalsIgnoreCase(choice.trim())
将文本放在第一位可以避免检查null
更全面的解决方案是匹配正则表达式
choice.matches((?i)^y.*)
它将匹配任何以y
开头的字符,并且无论大小写,只要choice
不是null
,那么您是否也在该方法中声明了一个名为declutation
的局部变量?请发布完整的代码。在这种情况下,这很重要。但这并不能回答问题……是的,它确实回答了问题,代码只会在这两个if/else
块中添加0
。您应该添加该解释。你现在的回答听起来像是一个无关的评论。我现在才意识到你是对的,我读了你的评论。好吧,Jarrod我用“是”替换了choice==“是”。equalsIgnoreCase(choice.trim())仍然是0??没有提供足够的代码来帮助你了。。。我们需要一份工作。