私は次のことを試みました。 if(pos == "mgt"){} しかし、機能しませんでした。それが 'else'を実行するたびに。 問題は何ですか? 名前をスキャンするときに問題が発生しました。 scan.next();
私はフルネームを入力するとエラーが発生し、1つの名前だけが正常に機能しました。if条件で文字列を使用するには?
ここに完全なコードがあります。
static double bsal,nsal,epf,etf,pet;
static String name,pos;
static int empId;
public static void main(String []args){
Scanner scan = new Scanner(System.in);
System.out.print("Enter your Employee ID :");
empId = scan.nextInt();
System.out.println();
System.out.print("Enter your name :");
name = scan.next();``
System.out.println();
System.out.print("Enter your position :");
pos = scan.next();
System.out.println();
System.out.print("Enter your Basic Salary :");
bsal = scan.nextDouble();
epf();
etf();
pet();
nsal();
result();
}
static double epf(){
epf = x*8/100;
return epf;
}
static double etf(){
etf = bsal*3/100;
return etf;
}
static double pet(){
if(pos =="mgt"){
pet = bsal*10/100;
}
else if(pos == "exe"){
pet = bsal*7/100;
}
else if(pos == "ope"){
pet = bsal*5/100;
}
else{
System.out.println("Problem with Position. Enter it correctly.");
}
return pet;
}
static double nsal(){
nsal = bsal + pet - (etf + epf);
return nsal;
}
static void result(){
// output of every thing
}
}
'=='や '!='を使って文字列を比較しないでください。代わりに 'equals(...)'または 'equalsIgnoreCase(...)'メソッドを使用してください。 2つの*オブジェクト参照が同じであるかどうかを '=='が調べることを理解する。興味のあるものではない。もう一方のメソッドは、2つの文字列が同じ順序で同じ文字を持つかどうかをチェックする。ここに問題があります。 –