2017-06-13 8 views
0

私はJavaに慣れておらず、練習で学びたいと思っています。私はifステートメントでどこが間違っているのか分かりませんが、rと入力すると(スキャナが値を格納していると思います)、ifステートメントの最初の部分は初期化されず、代わりにelseステートメントが初期化されます。スキャナが "r"の値を読み込んで保存するときに、私のif文が初期化されないのはなぜですか?

import java.util.Scanner; 
import java.util.concurrent.ThreadLocalRandom; 
public class T2 { 
public static void main(String args[]){ 
    Scanner input = new Scanner(System.in); 
    T2_2 T2_2Object = new T2_2(); 

    System.out.println("What is your favorite color? (Enter 0 if unsure) "); 
    String value = input.nextLine(); 

    if (value == "r"){ 
     int value2; 

     value2 = ThreadLocalRandom.current().nextInt(1,10); 

     String value3 = Integer.toString(value2); 
     System.out.println(value3); 

答えて

0

使用:

if (value.equals("r")) 

関数は、オブジェクトへの参照が等しいかどうかstringの実際の内容、==オペレータチェックをチェックします。 stringの定数は通常、同じ値を持つ2つの定数を実際に==と比較できるように「内部」になっていますが、それに頼らない方が良いです。 Javaで

0

、あなたは(.equalsを使用して文字列を比較する必要があります)

if (value.equals("r")) 
関連する問題