Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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 如何将值和变量从非main方法返回到main方法?_Java - Fatal编程技术网

Java 如何将值和变量从非main方法返回到main方法?

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

我试图使这个程序工作,但我得到的错误是,它无法在system.out.print语句的main方法中找到变量min和max。我猜这是因为main不知道这些变量是什么,因为MinMax一旦运行就会破坏这些变量。但是,我如何将结果从最小-最大方法传输过来,以便在主施工方案中的system.out.print中打印结果

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值