2013-01-18 352 views
-3

我只是學習java所以這可能是一個非常愚蠢的問題,但我找不到一個足夠簡單的答案。我試圖製作一個程序,所以如果用戶輸入「male」來運行System.out.print(「你是一個人」);
這裏是我的代碼:Java如果聲明幫助初學者

import java.util.Scanner; 

public class clac { 
    public static void main(String[] args){ 
     double gender; 
     Scanner input = new Scanner(System.in); 
     System.out.print("Are you male or female? "); 
     gender = input.nextDouble(); 
     if (gender == "male"){ 
      System.out.println("You are a guy"); 
     }else{ 
      System.out.print("You are a gal."); 
     } 
    } 
} 
+5

好了,你想存儲在雙數據類型的字符串值。 –

+0

是的,那是正確的 – Col1107

+1

男性定義在哪裏? – MadProgrammer

回答

5

你在做什麼錯:你需要讀取一個字符串。字符串是一段文字。雙數是一個十進制數。你正在讀一個雙。

如何解決它:

String gender = input.next(); // read a String, instead of double 
if (gender.equals("male")) // if (gender == "male") use .equals for strings 
{ 
    System.out.println("U mad bro!?"); 
} else 
{ 
    System.out.println("Hey Doll!"); 
} 
+1

並使用equals()而不是== – kosa

+2

@Nambari:我打算補充一點。但首先,我先從一個非常簡短的答案開始,然後立即開始擴展:) –

+0

感謝您的幫助!對不起,我很愚蠢 – Col1107

0

你不應該使用nextDouble(),這指的是小數。

+0

我應該使用什麼樣的變量類型? – Col1107

+0

你應該從教科書,教程等學習,你不會猜測編譯的方法。 – djechlin

0

嘗試

String gender = input.nextString(); 
    if ("male".equals(gender)){ 
     System.out.println("Wazzup dude?"); 
    }else{ 
     System.out.print("Hey Doll!"); 
    } 
+1

字符串var沒有被突出顯示 – Col1107

0

我相信你想使用的的.next()方法掃描儀。嘗試這樣的:

 
import java.util.Scanner; 

public class clac { 
    public static void main(String[] args){ 
     //Define gender variable as a string since that's what we're expecting as an input 
     string gender; 
     //Instantiate a Scanner object 
     Scanner input = new Scanner(System.in); 
     //Ask the user a question 
     System.out.print("Are you male or female? "); 
     //Read in the response into the gender variable 
     gender = input.next(); 
     //Check to see if the user's answer matches "male" 
     //We put "male" first in case the user returns a null value 
     //This will help avoid a fatal error 
     if ("male".equals(gender)){ 
      System.out.println("You are a guy"); 
     } 
     else { 
      System.out.print("You are a gal."); 
     } 
    } 
} 

我希望這可以幫助。

0

您應該使用equals方法來比較兩個字符串,該字符串是一個對象,這是一個引用,equals()方法會比較兩個字符串的內容,但==會比較兩個地址串

所以,你應該這樣寫:

gender = input.next(); 
if (gender.equals("male")){ 
    System.out.println("You are a guy"); 
}else{ 
    System.out.print("You are a gal."); 
}