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