Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中将局部变量存储到类变量中?_Java - Fatal编程技术网

如何在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

我正在用Java编写一个交互式应用程序,我的一个局部变量没有将自身添加到类变量中,这会破坏我的最终输出

这里是类变量
公共静态双演绎

这就是我想要储存的东西

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??没有提供足够的代码来帮助你了。。。我们需要一份工作。