Java 如何将值和变量从非main方法返回到main方法?
我试图使这个程序工作,但我得到的错误是,它无法在system.out.print语句的main方法中找到变量min和max。我猜这是因为main不知道这些变量是什么,因为MinMax一旦运行就会破坏这些变量。但是,我如何将结果从最小-最大方法传输过来,以便在主施工方案中的system.out.print中打印结果Java 如何将值和变量从非main方法返回到main方法?,java,Java,我试图使这个程序工作,但我得到的错误是,它无法在system.out.print语句的main方法中找到变量min和max。我猜这是因为main不知道这些变量是什么,因为MinMax一旦运行就会破坏这些变量。但是,我如何将结果从最小-最大方法传输过来,以便在主施工方案中的system.out.print中打印结果 class MethodMinMaxWithUnlimitedValues { public static void main(String[]args) { Scan
class MethodMinMaxWithUnlimitedValues {
public static void main(String[]args) {
Scanner console = new Scanner (System.in);
int value;
char choice;
do{
System.out.print ( " enter value " );
value = console.nextInt();
isMinMax(value);
System.out.print ("enter more numbers? (y/n) ");
choice = console.next().charAt(0);
}
while (choice == 'y' || choice == 'Y');
System.out.print("min value is = " + min + " max value is = " + max);
}
public static void isMinMax (int n) {
int min = Integer.MIN_VALUE;
int max = Integer.MAX_VALUE;
if (n > max) {
max = n;
} else if (n < min) {
min = n;
}
}
}
类方法MinMaxWithUnlimitedValue{
公共静态void main(字符串[]args){
扫描仪控制台=新扫描仪(System.in);
int值;
字符选择;
做{
系统输出打印(“输入值”);
value=console.nextInt();
isMinMax(值);
System.out.print(“输入更多数字?(y/n)”);
choice=console.next().charAt(0);
}
while(choice='y'| choice='y');
系统输出打印(“最小值为=“+min+”最大值为=“+max”);
}
公共静态无效isMinMax(整数n){
int min=Integer.min\u值;
int max=整数最大值;
如果(n>最大值){
max=n;
}否则如果(n
使其静态
和全局
import java.util.Scanner;
class MethodMinMaxWithUnlimitedValues {
static int min = Integer.MIN_VALUE;
static int max = Integer.MAX_VALUE;
public static void main(String[]args) {
Scanner console = new Scanner (System.in);
int value;
char choice;
do{
System.out.print ( " enter value " );
value = console.nextInt();
isMinMax(value);
System.out.print ("enter more numbers? (y/n) ");
choice = console.next().charAt(0);
}
while (choice == 'y' || choice == 'Y');
System.out.print("min value is = " + min + " max value is = " + max);
}
public static void isMinMax (int n) {
if (n > max) {
max = n;
} else if (n < min) {
min = n;
}
}
}
import java.util.Scanner;
类方法MinMaxWithUnlimitedValue{
静态int min=Integer.min\u值;
静态int max=Integer.max\u值;
公共静态void main(字符串[]args){
扫描仪控制台=新扫描仪(System.in);
int值;
字符选择;
做{
系统输出打印(“输入值”);
value=console.nextInt();
isMinMax(值);
System.out.print(“输入更多数字?(y/n)”);
choice=console.next().charAt(0);
}
while(choice='y'| choice='y');
系统输出打印(“最小值为=“+min+”最大值为=“+max”);
}
公共静态无效isMinMax(整数n){
如果(n>最大值){
max=n;
}否则如果(n
注意:可能有很多副作用,您可以将min max设置为静态变量,也可以将这些值作为某些数据结构的一部分返回,或者您可以返回包含两个成员min max的类的对象。您可以尝试将min和max变量移到使它们成为静态实例变量的方法之外。@pdrersin这看起来像这样;类方法MinMaxWithUnlimitedValue{public int max=Integer.max\u VALUE;public int min=Integer.min\u VALUE;?下面的人完全按照我的意思做了。你可以检查这个答案。你也必须使它们成为静态的,因为你在静态方法中调用它们谢谢!!!哦,嘿,当我运行代码时,所需的结果不会出现。每当我输入一个值,不管是什么w许多,最小值变为-2147483648,而最大值变为2147483647。如何解决此问题?这是由于您在方法中的逻辑,您必须键入非常大的数字(大于2147483647)或非常小的数字(小于-2147483648)才能看到更改如果你输入例如3,那么什么都不会改变,因为3不大于整数。最大值也不小于整数。最小值我知道了,但可能我的最小值方法有点错误。在问题12中,最小值-最大值似乎起作用。我正在尝试实现这一点,但想创建一个方法,看看它是最小值还是最大值x值