Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为我的java类调用方法_Java_Methods_Call - Fatal编程技术网

为我的java类调用方法

为我的java类调用方法,java,methods,call,Java,Methods,Call,我正在尝试创建一个方法,该方法要求用户输入他们想要的名称和值的数量,然后提示用户输入这些名称和值。然后,假设返回具有最小值的人的名字,并在main中打印。错误不断弹出,无法找到变量“name”。这是到目前为止我的代码 public static void main(String[] args){ String name = minValue(); System.out.println(name); }//end main public static String minValu

我正在尝试创建一个方法,该方法要求用户输入他们想要的名称和值的数量,然后提示用户输入这些名称和值。然后,假设返回具有最小值的人的名字,并在main中打印。错误不断弹出,无法找到变量“name”。这是到目前为止我的代码

public static void main(String[] args){
    String name = minValue();
    System.out.println(name);
}//end main

public static String minValue(){
    Scanner input = new Scanner(System.in);
    System.out.print("How many first names are there?");
    int numOfNames = input.nextInt();
    for(int number = 0; number < numOfNames; number++){
        System.out.print("Enter name: ");
        String name = input.next();
    }
    System.out.print("How many values are there?");
    int numOfValues = input.nextInt();
    for (int count = 0; count < numOfValues; count++){
        System.out.print("Enter the value: ");
        double value = input.nextDouble();
    }
    return name;
}//end minValue 
publicstaticvoidmain(字符串[]args){
字符串名称=minValue();
System.out.println(名称);
}//端干管
公共静态字符串minValue(){
扫描仪输入=新扫描仪(System.in);
System.out.print(“有多少个名字?”);
int numoffnames=input.nextInt();
对于(int number=0;number

我还认为我在将值与名称连接方面做得不对。与此非常混淆。

在方法
minValue
中,您在第一个
for
循环中定义了
字符串名
变量,然后尝试在循环范围之外访问它。你应该这样做:

public static String minValue(){

  ...
  String name = "";
  for( ... ) {
    name = input.next();
  }

  ...

  return name;
}
错误不断弹出,无法找到变量“name”

name
移出
for
循环:

String name = null;
for (int number = 0; number < numOfNames; number++) {
    System.out.print("Enter name: ");
    name = input.next();
}

您正在方法末尾执行
返回name
,但没有在正确范围内的任何位置声明它。您已经在
main
(这意味着它仅在该方法中可用)和for循环中定义了它(这意味着它是为每个循环迭代重新创建的,并且仅在那里可用)


您可以在
minValue
方法的开头添加
String name=”“
作为快速修复,但我建议您阅读变量范围,以便了解代码不正确的原因。

这应该会将名称返回给您。 您所做的是在for循环中定义名称。这意味着一旦for循环运行完成,name变量就被丢弃。 定义要在循环外的循环外返回或使用的变量(如在方法开头)。 这将有助于将名称返回给您

public static void main(String[] args){
  String name = minValue();
  System.out.println(name);
}//end main

public static String minValue(){
  String name="none";
  Scanner input = new Scanner(System.in);
  System.out.print("How many first names are there?");
  int numOfNames = input.nextInt();
for(int number = 0; number < numOfNames; number++){
  System.out.print("Enter name: ");
  name = input.next();
}
  System.out.print("How many values are there?");
  int numOfValues = input.nextInt();
for (int count = 0; count < numOfValues; count++){
   System.out.print("Enter the value: ");
   double value = input.nextDouble();
 }
 return name;
}//end minValue 
publicstaticvoidmain(字符串[]args){
字符串名称=minValue();
System.out.println(名称);
}//端干管
公共静态字符串minValue(){
String name=“无”;
扫描仪输入=新扫描仪(System.in);
System.out.print(“有多少个名字?”);
int numoffnames=input.nextInt();
对于(int number=0;number
另外,这段代码对双值完全不起作用

  System.out.print("How many values are there?");
  int numOfValues = input.nextInt();
for (int count = 0; count < numOfValues; count++){
   System.out.print("Enter the value: ");
   double value = input.nextDouble();
 }
System.out.print(“有多少个值?”);
int numOfValues=input.nextInt();
对于(int count=0;count
改用这段代码!它可以帮助您将值存储在数组中,并将代码写入所提供空间中的最小值

Scanner input = new Scanner(System.in);
        System.out.print("How many first names are there?");
        int numOfNames = input.nextInt();
        String name[]=new String[numOfNames];
        for (int number = 0; number < numOfNames; number++) {
            System.out.print("Enter name: ");
             name[number] = input.next();
        }
        System.out.print("How many values are there?");
        int numOfValues = input.nextInt();
        double value[]=new double[numOfValues];
        for (int count = 0; count < numOfValues; count++) {
            System.out.print("Enter the value: ");
            value[count] = input.nextDouble();
        }
        /* Write function to calculate min value here */
        return min value;
扫描仪输入=新扫描仪(System.in);
System.out.print(“有多少个名字?”);
int numoffnames=input.nextInt();
字符串名称[]=新字符串[numoffnames];
对于(int number=0;number
是否要返回所有输入的名称?此时您需要多个名称(和值)但只返回一个字符串。您应该向类中添加2个ArrayList成员,并向这些集合中添加名称和值。首先尝试一下,您会发现这样做更有意义。@Trengot我只是想得到一个名称,即具有最低值的名称value@helb我们班还没有讨论数组。你能说得更具体一点吗对于初学者来说,没有太多的内容可以涵盖?那么我该怎么做才能使这些值与名称相关?好吧,这取决于你想做什么,但现在你只是得到一个值并将其丢弃。看看你的作业,然后从那里开始。真的很有帮助的输入@ChiefTwoPencils@lobolb12ChiefTwoPencils的评论似乎无关紧要。你需要澄清吗关于我的答案有什么问题吗?@user1803551没有,一切都很好。我不熟悉数组,但我正在阅读它们。我知道我的努力白费了,这帮了大忙。当你提供了一个对问题的正确结果没有影响的答案时,这非常有帮助。你,和其他人一样,都参与进来了在快速回答中,忽略了认识到除了名称在循环中声明之外,它也在循环中。您预先编辑的回答表明,您所要做的就是将声明移到循环之外,而实际上它只是创建了同样无用的代码。上面的简单注释简单地说明了这一事实。@Chieftwo Pencils您混淆了who写了哪条评论。此外,即使在我第一次迭代的问题中,它也回答了OP的50%的问题。你可能还想知道,快速回答并跟进编辑
Scanner input = new Scanner(System.in);
        System.out.print("How many first names are there?");
        int numOfNames = input.nextInt();
        String name[]=new String[numOfNames];
        for (int number = 0; number < numOfNames; number++) {
            System.out.print("Enter name: ");
             name[number] = input.next();
        }
        System.out.print("How many values are there?");
        int numOfValues = input.nextInt();
        double value[]=new double[numOfValues];
        for (int count = 0; count < numOfValues; count++) {
            System.out.print("Enter the value: ");
            value[count] = input.nextDouble();
        }
        /* Write function to calculate min value here */
        return min value;