2014-10-07 220 views
0

我想製作一個小程序,首先要求輸入兩個數字,使用方法檢查它們是否正確,然後在輸入最後一個數字後打印出方法的結果。 (是的,你贏了,沒有你輸了)。Java公共靜態布爾方法

我將此與其他問題進行了比較,但不知何故,我無法使其工作。我在方法之外製作了幸運數字,甚至購買了「大Java」,但現在我陷入了困境。

幫助將不勝感激!

package wtf; 

import Java.util.Scanner; 
/** 
* 
* @author Darl 
*/ 
public class WTF { 
public static int luckyNumber; 
public static int secondLuckyNumber; 
/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 

    Scanner sc = new Scanner(System.in); 
    System.out.println("Give me a number between 0 and 100 to win a prize. "); 
    luckyNumber = sc.nextInt(); 

    System.out.println("Give me another number between 100 and 200."); 
    secondLuckyNumber = sc.nextInt(); 

} 

public static boolean hasLuckyNumber(int luckyNumber, int min, int max){ 
    min = 20; //all winning tickets from 20 till 60 
    max = 60; 
    if (luckyNumber > min || luckyNumber < max) { 
     System.out.println("Unfortunatly, no prize"); 
    }else{ 
     System.out.println("You've got a prize!"); 
    } 
} 

public static boolean hasSecondLuckyNumber(int secondLuckyNumber, int min, int max){ 
    min = 140; // all winning tickets from 140 till 175 
    max = 175; 
    if (secondLuckyNumber > min || secondLuckyNumber < max){ 
     System.out.println("Sad face"); 
    }else{ 
     System.out.println("We've got a winner!"); 
    } 
    } 
} 
+3

那麼你真正的問題是什麼? – Mena 2014-10-07 16:01:13

+0

請注意,購買書不僅僅會給你提供知識。你認爲你的程序在做什麼?你爲什麼不能做到你想做的事? – 2014-10-07 16:01:47

+2

*我無法讓它工作* - 你的程序應該做什麼?它實際上做了什麼?你運行它時會得到什麼錯誤(如果有的話)? – azurefrog 2014-10-07 16:02:35

回答

0

您是否因爲沒有從您的方法返回布爾值而收到編譯錯誤?

public static boolean hasSecondLuckyNumber(int secondLuckyNumber, int min, int max){ 
    min = 140; // all winning tickets from 140 till 175 
    max = 175; 
    if (secondLuckyNumber > min || secondLuckyNumber < max){ 
     System.out.println("Sad face"); 
     return false; 
    }else{ 
     System.out.println("We've got a winner!"); 
     return true; 
    } 
    return false; 
} 

也許? 看起來像你不需要布爾值,因爲你使用控制檯寫出,如果你贏或輸雖然。

2

那麼首先你不會從你的方法中返回任何東西。您可以將函數的返回值更改爲void,因爲您在函數內部打印結果,或者根據返回值在main中進行打印。

其次,你不要在代碼中的任何地方調用方法,所以什麼都不會發生。

*注意,如果您在函數內對它們進行初始化,則不需要min/max參數。

1

我覺得你有(除其他事項外,即不返回布爾值等布爾方法的。)這個問題是這樣的:

(luckyNumber > min || luckyNumber < max) 

應該是這樣的:

(luckyNumber > min && luckyNumber < max) 

也一樣爲:

secondLuckyNumber > min || secondLuckyNumber < max 

應該是:

secondLuckyNumber > min && secondLuckyNumber < max 

對於||,大於max的值將返回true,因爲第一個語句luckynumber > min將返回true。與&&更換此,如果luckynumber超過min和小於max

2

對於方法hasLuckyNumber(...)和hasSecondLuckyNumber(...)將只返回true,你必須返回一個布爾值,無論是真或錯誤。然後在主要內部你必須改變你的實現。

public static void main(String[] args) { 

    Scanner sc = new Scanner(System.in); 
    System.out.println("Give me a number between 0 and 100 to win a prize. "); 
    luckyNumber = sc.nextInt(); 

    if(hasLuckyNumber(luckyNumber)) { 
     System.out.println("Give me another number between 100 and 200."); 
     secondLuckyNumber = sc.nextInt(); 

     if(hasSecondLuckyNumber(secondLuckyNumber)) { 
     System.out.println("We've got a winner!"); 
     } 
     else { 
     System.out.println("Sad face"); 
     } 
    } 
    else { 
    System.out.println("Unfortunatly, no prize"); 
    } 

} 

public static boolean hasSecondLuckyNumber(int secondLuckyNumber){ 
    if (secondLuckyNumber > 140 || secondLuckyNumber < 175){ 
     return false; 
    } else{ 
     return true; 
    } 
} 

public static boolean hasLuckyNumber(int luckyNumber){ 
    if (luckyNumber > 20 && luckyNumber < 60) { 
     return true; 
    }else{ 
     return false; 
    } 
}