невозможно получить доступ к переменной за пределами while l oop in java - PullRequest
1 голос
/ 16 июня 2020

В этом коде я пытаюсь найти максимум n чисел. Я объявил максимум за пределами l oop, но не могу получить доступ к максимальной переменной позже:

public class MaxOfNnumbers {

    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader (System.in));
        int maximum  = Integer.parseInt(reader.readLine ());

        //write your code here
        while(true) {
            String s = reader.readLine ();
            int n = Integer.parseInt ( s );

            if (n > 0) {
                if (n > maximum) {
                    n = maximum;
                }
            }

        }
        System.out.println ( maximum );// Error indicates that , maximum variable is unreachable
    }
}

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Строка while(true) в вашем коде устанавливает бесконечное l oop. Вам необходимо предоставить условие выхода из этого l oop, иначе System.out.println(maximum) никогда не будет достигнуто.

0 голосов
/ 19 июня 2020

Это решение, которое я нашел для кода.

publi c class MaxOfNnumbers {

public static void main(String[] args) throws Exception {
    BufferedReader reader = new BufferedReader(new InputStreamReader (System.in));
    System.out.println ("Enter the amount of numbers to be scanned");


    // if we enter n to be 0 or negative , we cant form an array
    // hence an if condition where if(n > 0) is applied before forming
    // the array .
    int n = Integer.parseInt ( reader.readLine () );
    System.out.println ( "Entered value for n is "+n );

    int leastNum[] = new int[n];
   System.out.println ("Array size is "+leastNum);

    // for reading the data from keyboard least num array is declared
    // this array is fed from the keyboard .
    if(n > 0){
        for(int i = 0; i < n ; i++){
            leastNum[i]=Integer.parseInt ( reader.readLine () );
            System.out.println ("Value stored at "+ i+ "Location is"+leastNum[i]);
        }
         System.out.println ("Least num length is "+leastNum.length);

        int maximum = Integer.MIN_VALUE;

System.out.println («начальное значение максимума равно» + максимум);

        for(int i =0 ; i < n; i++){

            if(maximum < leastNum[i]){
                maximum = leastNum[i];
            }
        }
        System.out.println(maximum);
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...