2011-06-23 27 views
0
  1. 鑑於一個人的年齡,建立一個生日嚮導,可以計算出生年份,考慮到你問今天的人的年齡。編寫可用於Java程序的語句,以執行生日嚮導的計算。

在這裏,我需要但它不起作用。可能有人點我在做什麼錯:生日快樂計劃

import java.util.Scanner; 
public class Birthday 
{ 
    public static void main(String[]args) 
    { 
     int birthday; 
     int age; 
     int YearOfBirth; 

     Scanner keyboard = new Scanner(System.in); 
     System.out.println(" What is your +Age ?"); 

     age = keyboard.nextInt(); 
     YearOfBirth= 2011 - age; 
     System.out.println("I was born :+ YearsOfBirth."); 
    } 
} 
+5

什麼不工作? (除了請求的程序實際上不可能實現的事實) – geoffspear

+3

您可能還想使用日期/日曆API獲取當前年份。否則,您的代碼在2012年將無法使用:-D –

+0

(不知道某人的生日,只知道他們的年齡並不能說明他們出生的年份,儘管您可以準確猜測出隨着當前日期從七月份進一步增加1) – geoffspear

回答

2
System.out.println("I was born :+ YearsOfBirth."); 

你永遠不顯示yearsOfBirth前關閉您的報價

System.out.println("I was born : "+ YearsOfBirth+"."); 

嘗試這一點,讓我知道。

另外我剛剛注意到你的變量名稱是錯誤的:在print語句中它的YearsOfBirth當你聲明它是YearOfbirth

1
System.out.println("I was born :+ YearsOfBirth."); 

應該

System.out.println("I was born :" + YearOfBirth + "."); 

不知道該age = keyboard.nextInt();會的工作,雖然。

+0

nextInt的工作 – RMT

+0

這很好:-) – nhaarman

0

System.out.println(「我出生:+ YearsOfBirth。」); ......這是錯誤的

使用本:

的System.out.println( 「我出生:+」 YearsOfBirth);

0

System.out.println("I was born :+ YearsOfBirth.");

這導致字符串 「我出生:+ YearsOfBirth。」被打印出來。這不是你想要的。也許這是你的意思:

System.out.println("I was born :"+ YearsOfBirth);

這一次,變量YearsOfBirth被轉換爲字符串,然後連接起來以「我誕生了:」來提供所需的結果。在Java中,當你在兩個對象上應用串聯運算符(+)時,其中一個碰巧是一個String,那麼另一個將被轉換爲一個String對象(該值可能沒有意義),並返回一個新的String對象。而且,雙引號中的文字通常是字符串。

0
import java.util.Scanner; 
public class Birthday 
{ 
    public static void main(String[]args) 
    { 
    int birthday; 
    int age; 
    int yearOfBirth; 

    System.out.println(" What is your Age ?"); 

    Scanner keyboard = new Scanner(System.in); 
    String input = keyboard.nextLine(); 
    age = Integer.parseInt(input); 

    yearOfBirth = 2011 - age; 
    System.out.println("I was born :" + yearOfBirth); 
    } 
} 

這應該工作。