【问题标题】:lottery of a random number with 2 classes2 类随机数的抽奖
【发布时间】:2020-10-26 21:32:24
【问题描述】:

我正在尝试创建一个生成随机数(从 20 到 150)的彩票,如果生成的数字是 40 到 50 的数字,则代码显示您赢了。但是,我在 main 方法中调用第二个类时遇到问题。我收到一条错误消息,说“抽奖类中的方法不能应用于给定类型”。如何改进我的代码?

class Main {

Lottery.draw();

}


import java.util.*;

public class Lottery {
  public static void draw(String[] args) {
  int entry1 = (int)(Math.random()*150)+20;
  
  if(entry1>= 40 && entry1<=50){
    System.out.println("You won the lottery!");}
  System.out.println(entry1);
}
}

【问题讨论】:

  • 好吧,Lottery.draw() 语句直接出现在类中,而不是在方法中。这在 Java 中是无效的。其次,draw 接受 String[],但您没有传递任何内容。
  • 我猜这是一个控制台应用程序。所以主要的点是“静态虚空绘制”? Main 类的目的是什么?这是编译干净的代码吗?

标签: java class random


【解决方案1】:

需要注意的两点:

您对 draw 的调用需要在 main 方法中,并从 draw 中删除 String[] args。您不需要 Main 类。

public class Lottery { 
   public static void main(String[] args) {
     Lottery.draw(); 
   }
}

要生成一个介于 20 到 150 之间的数字,您需要执行以下操作。

 int entry1 = (int)(Math.random()*131)+20;

随机数将介于 0 和 130 之间,因此您的数字将介于 0+20 和 130+20 之间(20

【讨论】:

  • 哦,对了!非常感谢你的帮助!我对 String[ ] args 的意义有点困惑。我认为这是您在制作新方法时必须包含的内容。那么我什么时候使用 String[ ] args 呢?我是这种语言的新手,有时会让人感到困惑>
  • 如果您想将字符串数组传递给您的方法,将使用 String[] 参数。通常,此构造用于主入口点方法,因此您可以在运行程序时根据需要从命令行处理参数。但如果它们是数字,它们就必须被转换。您也可以将此技术用于任何方法。由于您没有指定传递参数是必需的,所以我没有看到需要。但我也想指出,您的随机数构造并不完全正确。
  • 哦,好的,我现在明白了!谢谢!
猜你喜欢
  • 2013-07-09
  • 2012-11-27
  • 2012-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 2019-05-06
  • 1970-01-01
相关资源
最近更新 更多