我的 java class 的调用方法
Calling methods for my java class
我正在尝试创建一种方法,询问用户他们想要的名称和值的数量,然后提示用户输入这些名称和值。然后假设 return 具有最低值的人的名字并在 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
我还认为我在将值与名称相关联方面做得不对。真的很困惑。
在方法 minValue
中,您在第一个 for
循环中定义了 String name
变量,然后您试图在循环范围外访问它。你应该这样做:
public static String minValue(){
...
String name = "";
for( ... ) {
name = input.next();
}
...
return name;
}
Error keeps popping up that it cannot find the variable "name".
将 name
移出 for
循环:
String name = null;
for (int number = 0; number < numOfNames; number++) {
System.out.print("Enter name: ");
name = input.next();
}
解释:
for
循环的大括号({
和 }
)定义了变量定义的范围。由于您在该块内定义了 name
,因此它只能在其中可用。通过将块外的声明移动到 return name
的范围内,它将可供引用。
It's suppose to return the first name of the person with the lowest value and print in main.
如果您想记住您阅读的名称和值,您必须将它们全部放入某种数据结构(数组、列表、映射等)中。我假设您正在尝试使用最基本的结构,因此请使用数组。此外,在您的案例中使用不同数量的名称和值是没有意义的。尝试理解并完成这段代码:
public static String minValue() {
Scanner input = new Scanner(System.in);
System.out.print("How many first names are there?");
int numOfNames = input.nextInt();
String[] names = new String[numOfNames];
double[] values = new double[numOfNames];
for (int number = 0; number < numOfNames; number++) {
System.out.print("Enter name: ");
names[number] = input.next();
System.out.print("Enter the value: ");
values[number] = input.nextDouble();
}
int i = 0;
// write a way to get the index i of the smallest value in values
return names[i];
}
您在方法的末尾执行了 return name
,但您没有在正确范围内的任何地方声明它。您已经在 main
中定义了它(这意味着它仅在该方法中可用)和 for 循环中(这意味着它为每个循环迭代重新创建并且仅在该处可用)。
您可以在 minValue
方法的开头添加 String name = ""
作为快速修复,但我建议您阅读变量范围,以便了解您的代码不正确的原因。
这应该return给你起个名字。
您所做的是在 for 循环中定义名称。这意味着一旦 for 循环 运行 完成,名称变量就会被丢弃。
定义您希望 return 的变量或在循环外使用循环外(如在方法的开头。
这应该可以 return 命名给你。
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
此外,这段代码对 double 值完全没有任何作用...
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();
}
改用这段代码!它可以帮助您将值存储在数组中并将代码写入 space 提供的最小值!
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;
我正在尝试创建一种方法,询问用户他们想要的名称和值的数量,然后提示用户输入这些名称和值。然后假设 return 具有最低值的人的名字并在 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
我还认为我在将值与名称相关联方面做得不对。真的很困惑。
在方法 minValue
中,您在第一个 for
循环中定义了 String name
变量,然后您试图在循环范围外访问它。你应该这样做:
public static String minValue(){
...
String name = "";
for( ... ) {
name = input.next();
}
...
return name;
}
Error keeps popping up that it cannot find the variable "name".
将 name
移出 for
循环:
String name = null;
for (int number = 0; number < numOfNames; number++) {
System.out.print("Enter name: ");
name = input.next();
}
解释:
for
循环的大括号({
和 }
)定义了变量定义的范围。由于您在该块内定义了 name
,因此它只能在其中可用。通过将块外的声明移动到 return name
的范围内,它将可供引用。
It's suppose to return the first name of the person with the lowest value and print in main.
如果您想记住您阅读的名称和值,您必须将它们全部放入某种数据结构(数组、列表、映射等)中。我假设您正在尝试使用最基本的结构,因此请使用数组。此外,在您的案例中使用不同数量的名称和值是没有意义的。尝试理解并完成这段代码:
public static String minValue() {
Scanner input = new Scanner(System.in);
System.out.print("How many first names are there?");
int numOfNames = input.nextInt();
String[] names = new String[numOfNames];
double[] values = new double[numOfNames];
for (int number = 0; number < numOfNames; number++) {
System.out.print("Enter name: ");
names[number] = input.next();
System.out.print("Enter the value: ");
values[number] = input.nextDouble();
}
int i = 0;
// write a way to get the index i of the smallest value in values
return names[i];
}
您在方法的末尾执行了 return name
,但您没有在正确范围内的任何地方声明它。您已经在 main
中定义了它(这意味着它仅在该方法中可用)和 for 循环中(这意味着它为每个循环迭代重新创建并且仅在该处可用)。
您可以在 minValue
方法的开头添加 String name = ""
作为快速修复,但我建议您阅读变量范围,以便了解您的代码不正确的原因。
这应该return给你起个名字。 您所做的是在 for 循环中定义名称。这意味着一旦 for 循环 运行 完成,名称变量就会被丢弃。 定义您希望 return 的变量或在循环外使用循环外(如在方法的开头。 这应该可以 return 命名给你。
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
此外,这段代码对 double 值完全没有任何作用...
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();
}
改用这段代码!它可以帮助您将值存储在数组中并将代码写入 space 提供的最小值!
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;