import java.util.Scanner;
public class mainen {
public static void main(String[] args) {
Formler form = new Formler();
Scanner Sscan = new Scanner(System.in);
Scanner Dscan = new Scanner(System.in);
String input;
System.out.println("Formler: Molmassa");
input = Sscan.nextLine();
if(input == "molmassa" || input == "Molmassa"){
double m;
double M;
System.out.println("Massa: "); m = Dscan.nextDouble();
System.out.println("Molmassa: "); M = Dscan.nextDouble();
System.out.println(form.getMolmassa(m, M));
}
}
}
答案 0 :(得分:9)
将您的if
声明更改为:
if(input.equalsIgnoreCase("molmassa") ) { }
然后它应该按预期工作。请务必使用equals()
或equalsIgnoreCase()
方法比较字符串。 ==
比较对象引用而不是实际值。
答案 1 :(得分:4)
您需要替换等于支票:
if(input == "molmassa" || input == "Molmassa"){
以下内容;
if(input.equals("molmassa") || input.equals("Molmassa")){
第一个检查String
是否是同一个对象,而第二个检查它们是否是相同的值,这就是你需要的。
答案 2 :(得分:4)
问题在于你if
条件将其更改为
if(input.equalsIgnoreCase("molmassa) )
并且每件事都应该可以正常工作。
您不需要单独Scanner
来进行String
和double
输入,您可以使用一个Scanner
对象进行输入。
答案 3 :(得分:3)
if(input == "molmassa" || input == "Molmassa"){}
您应该使用String
方法或equals
方法等同equalsIgnoreCase
个对象。
if(input.equalsIgnoreCase("Molmassa")){}
==
用于原始等于检查。