我想制作一个小程序,首先要求两个数字,检查它们是否使用方法是好的,然后,在使用最后一个数字后,打印出方法的结果。 (是的,你赢了,不输了)。
我将此与此处的其他问题进行了比较,但不知怎的,我无法让它发挥作用。我在方法之外的方法中使用了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!");
}
}
}
答案 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;
}
可能? 看起来你不需要布尔值,因为如果你赢了或输了,你就会使用控制台写出来。