Java公共静态布尔方法

时间:2014-10-07 15:57:53

标签: java methods boolean

我想制作一个小程序,首先要求两个数字,检查它们是否使用方法是好的,然后,在使用最后一个数字后,打印出方法的结果。 (是的,你赢了,不输了)。

我将此与此处的其他问题进行了比较,但不知怎的,我无法让它发挥作用。我在方法之外的方法中使用了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!");
    }
    }
}

4 个答案:

答案 0 :(得分:2)

首先,你不能从你的方法中返回任何东西。您可以将函数的返回值更改为void,因为您在函数内打印结果,或者根据返回值在main中进行打印。

其次,你不能在代码中的任何地方调用方法,所以什么都不会发生。

*请注意,如果在函数内部初始化它们,则不需要min / max参数。

答案 1 :(得分:2)

对于Methods hasLuckyNumber(...)和hasSecondLuckyNumber(...),您必须返回一个布尔值,无论是true还是false。然后在main里面你必须改变你的实现。

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;
    }
}

答案 2 :(得分: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替换此选项才会返回true

答案 3 :(得分: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;
}

可能? 看起来你不需要布尔值,因为如果你赢了或输了,你就会使用控制台写出来。

相关问题