2014-10-07 3 views
0

두 개의 숫자를 먼저 물어보고 메소드를 사용했는지 여부를 확인한 다음 마지막 숫자를 보낸 후 메소드의 결과를 출력합니다 . (네가 이기면, 잃지 않아도됩니다.)Java public static boolean method

여기를 다른 질문과 비교해 보았지만 어떻게 든 작동시킬 수는 없습니다. 메소드 외부의 메서드 내에서 luckyNumbers를 만들었고 심지어 "Big 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

+0

책 구입은 단지 지식을 제공하는 것이 아니라는 점에 유의하십시오. 당신의 프로그램은 무엇을하고 있다고 생각하니? 왜 네가 원하는대로 할 수 없니? –

+2

* 작동하지 않을 수 있습니다 * - 프로그램에서 무엇을해야합니까? 실제로 무엇을합니까? 실행하면 어떤 오류가 발생합니까? – azurefrog

답변

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로 변경할 수 있습니다.

둘째, 코드의 아무 곳에서나 메서드를 호출하지 않으므로 아무 것도 일어나지 않습니다.

* 함수 내에서 초기화하는 경우 최소/최대 매개 변수가 필요 없음을 알 수 있습니다.

1

나는 당신이 (다른 것들 부울 값 등을 반환하지 부울 방법을 즉 사이 ..)가 발생하는 문제가이 생각 :

(luckyNumber > min || luckyNumber < max) 

이 있어야한다 : 또한

(luckyNumber > min && luckyNumber < max) 

같은 를 위해 :

secondLuckyNumber > min || secondLuckyNumber < max 

은 다음과 같아야합니다

secondLuckyNumber > min && secondLuckyNumber < max 

||의 경우 첫 번째 문 luckynumber > min이 true를 반환하므로 max보다 큰 값은 true를 반환합니다. luckynumber 이상 min과 방법 hasLuckyNumber (...)와 hasSecondLuckyNumber에 대한보다 max

2

(...)를 인 경우 &&으로이 교체 만 하나에 해당하면 부울 값을 반환해야 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; 
    } 
} 
관련 문제