2015-09-18 70 views
-1

我的代碼:使用靜態布爾方法

import java.util.Scanner; 

public class MonthMapper{ 
    static String month; 
    static int month_num; 

    public static boolean isMonthNumber (String str) { 
     month = str; 
     month_num = Integer.parseInt(month); 
     return (month_num >= 0 && month_num < 12); 
    } 

    public static void main(String[] args){ 
     Scanner sc = new Scanner(System.in); 
     System.out.print("Enter Month: "); 
     month = sc.next(); 
     System.out.println (isMonthNumber (Integer.toString(month_num))); 
    } 
} 

我必須寫一個靜態類方法boolean isMonthNumber(String str)使用帶String作爲輸入,並返回布爾值。如果輸入字符串表示1到12之間的整數值,則方法返回True,否則該方法返回應該返回False

目前由於某種原因,即使當我輸入一個大於12

+0

號,如果我進入'1' –

+0

什麼是month_num'的'當你調用'Integer.toString(month_num)'的值,則返回true?你怎麼看? –

+0

你是對的,但是當我輸入一個大於12的數字時,它也會返回true – Win

回答

2

值你傳入mounth_num變量的方法,但是month變量的讀取值我的程序總是返回true。

這種替換:

public static void main(String[] args){ 
    Scanner sc = new Scanner(System.in); 
    System.out.print("Enter Month: "); 
    System.out.println(isMonthNumber (sc.next())); 
} 
+0

我明白了,但現在我必須爲程序輸入兩次輸入才能正常工作,我該怎麼做,所以我只需輸入一次? 編輯:沒關係我意識到這是一個多麼愚蠢的問題。 非常感謝您的迅速回答! :-) – Win