Java 故障传递参数

Java 故障传递参数,java,methods,parameters,Java,Methods,Parameters,出于某种原因,当我测试代码时,随机生成的数字不会出现。以下是一个示例结果: 要生成什么,整数、双精度还是字符 整数 要生成的整数的上限和下限是多少 十, 一, 要生成多少个整数 十, 生成成功(总时间:9秒) 这是因为我的代码没有正确地传递参数吗?我也不知道如何解决这个问题 这是我的代码供参考(目前尚未完成) import java.util.Scanner; 公共类NewNumberCharacter{ /**主要方法 *@param args*/ 公共静态void main(字符串[]arg

出于某种原因,当我测试代码时,随机生成的数字不会出现。以下是一个示例结果:

要生成什么,整数、双精度还是字符

整数

要生成的整数的上限和下限是多少

十,

一,

要生成多少个整数

十,

生成成功(总时间:9秒)

这是因为我的代码没有正确地传递参数吗?我也不知道如何解决这个问题

这是我的代码供参考(目前尚未完成)

import java.util.Scanner;
公共类NewNumberCharacter{
/**主要方法
*@param args*/
公共静态void main(字符串[]args){
返回整数;
双回双回;
字符返回;
字符返回\u Lchar;
int Min_int;
int Max_int;
双分双;
双最大双;
//创建扫描仪
扫描仪输入=新扫描仪(System.in);
//要求用户在命令中输入:整数、双精度或字符
println(“您想要生成什么,整数、双精度还是字符?”);
//提示用户输入字符串或命令,然后按照提示进行操作
String命令=input.nextLine();
if(command.equals(“字符”)){
System.out.println(“您希望生成多少个字符?”);
int numcharacter=input.nextInt();
}
if(command.equals(“整数”)){
System.out.println(“要生成的整数的上限和下限是多少?”);
int maxn1=input.nextInt();
int minn2=input.nextInt();
System.out.println(“要生成多少个整数?”);
int numinteger=input.nextInt();
}
if(command.equals(“double”)){
System.out.println(“要生成的双精度的上限和下限是多少?”);
double maxn3=input.nextDouble();
double minn4=input.nextDouble();
System.out.println(“您希望生成多少个Double?”);
int numdouble=input.nextInt();
}
}
}
//将参数传递给方法
公共类随机数据生成器{
公共静态int-random(int-minn2、int-maxn1、int-numinteger){
对于(int i=0;i
代码更新

import java.util.Scanner;
public class NewNumberCharacter {
public static void main(String[] args) {
    // Create a Scanner
    Scanner input = new Scanner(System.in);
    
    // Ask the user to enter in the command: integer, double, or character
    System.out.println("What do you want to generate, integer, double, or character?");
    
    // Prompt the user to enter a string, or command, then follow the prompts
    String command = input.nextLine();
    
    if(command.equals("character")){
        System.out.println("How many characters would you like generated?");
    
    int numcharacter = input.nextInt();
    
    RandomDataGenerator.random(numcharacter);
    }
    if (command.equals("integer")){
        System.out.println("What is the upper limit and lower limit of the integers you want to generate?");  
        
    int maxn1 = input.nextInt();
    int minn2 = input.nextInt();
    
    System.out.println("How many integers do you want to generate?");
    int numinteger = input.nextInt();

      RandomDataGenerator.random(minn2,maxn1,numinteger); //Call the method
    }
    if (command.equals("double")){
        System.out.println("What is the upper limit and lower limit of the doubles you want to generate?");
        
    double maxn3 = input.nextDouble();
    double minn4 = input.nextDouble();
    
    System.out.println("How many doubles do you want to generate?");
    
    int numdouble = input.nextInt();
    
    RandomDataGenerator.random(maxn3,minn4,numdouble);
    }
}
// Pass the parameters to a method
public class RandomDataGenerator {
public static int random(int maxn1, int minn2, int numinteger){
    for(int i = 0 ; i < numinteger ; i++ ) {  
        System.out.println(maxn1 + (int)(Math.random()* minn2));    
    }    
    return 0;   
}
public static double random(double maxn3, double minn4, int numdouble){
    
    for (int i = 0; i < numdouble; i++){
       System.out.println(maxn3 + (int)(Math.random() * minn4)); 
    }
    return 0;
}
public static void random(int numcharacter){
    for (int i = 0; i < numcharacter;  i++){
        System.out.println();
    }
}
}
}
import java.util.Scanner;
公共类NewNumberCharacter{
公共静态void main(字符串[]args){
//创建扫描仪
扫描仪输入=新扫描仪(System.in);
//要求用户在命令中输入:整数、双精度或字符
println(“您想要生成什么,整数、双精度还是字符?”);
//提示用户输入字符串或命令,然后按照提示进行操作
String命令=input.nextLine();
if(command.equals(“字符”)){
System.out.println(“您希望生成多少个字符?”);
int numcharacter=input.nextInt();
RandomDataGenerator.random(numcharacter);
}
if(command.equals(“整数”)){
System.out.println(“要生成的整数的上限和下限是多少?”);
int maxn1=input.nextInt();
int minn2=input.nextInt();
System.out.println(“要生成多少个整数?”);
int numinteger=input.nextInt();
RandomDataGenerator.random(minn2,maxn1,numiteger);//调用该方法
}
if(command.equals(“double”)){
System.out.println(“要生成的双精度的上限和下限是多少?”);
double maxn3=input.nextDouble();
double minn4=input.nextDouble();
System.out.println(“您希望生成多少个Double?”);
int numdouble=input.nextInt();
RandomDataGenerator.random(maxn3,minn4,numdouble);
}
}
//将参数传递给方法
公共类随机数据生成器{
公共静态int-random(int-maxn1、int-minn2、int-numinteger){
对于(inti=0;i
您没有调用任何打印输出的
random
方法(属于
RandomDataGenerator
类)。这就是为什么你看不到它

例如,调用
RandomDataGenerator.random(minn2,maxn1,numinteger)
打印随机生成的整数:

....
if (command.equals("integer")){
    System.out.println("What is the upper limit and lower limit of the integers you want to generate?");  

    int maxn1 = input.nextInt();
    int minn2 = input.nextInt();

    System.out.println("How many integers do you want to generate?");

    int numinteger = input.nextInt();

    RandomDataGenerator.random(minn2, maxn1, numinteger);
}
....

您需要调用生成随机数的方法,如下所示:

if(command.equals("character")){
    System.out.println("How many characters would you like generated?");
    int numcharacter = input.nextInt();

    RandomDataGenerator.random(numcharacter);//Call the methods
}
else if (command.equals("integer")){
    System.out.println("What is the upper limit and lower limit of the integers you want to generate?");  

    int maxn1 = input.nextInt();
    int minn2 = input.nextInt();

    System.out.println("How many integers do you want to generate?");

    int numinteger = input.nextInt();
    RandomDataGenerator.random(minn2,maxn1,numinteger); //Call the method

}
else if (command.equals("double")){
    System.out.println("What is the upper limit and lower limit of the doubles you want to generate?");

    double maxn3 = input.nextDouble();
    double minn4 = input.nextDouble();

    System.out.println("How many doubles do you want to generate?");

    int numdouble = input.nextInt();
    RandomDataGenerator.random(maxn3,minn4,numdouble); //Call the method
}
请注意,您尚未完成生成随机字符的random方法。因此,当您调用时,除了新行之外,不会打印任何内容

 RandomDataGenerator.random(numcharacter);

你在哪里调用你的随机方法???如果不在何处调用这些方法,除非先调用它们,否则它们将无法神奇地工作。首先缩进代码以使其可读。当我输入更正时,会收到以下错误消息:“内部类NewNumberCharacter.RandomDataGenerator修饰符'static'中的非法静态声明只允许在常量变量声明中使用”从这些行中删除
NewNumberCharacter.
,我只看到主类中的NewNumberCharacter。我是否删除它?@blu
 RandomDataGenerator.random(numcharacter);