Как вернуть неизмененную переменную каждый раз, когда она превышает определенное число? - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь заставить переменную x возвращать свое значение после сложения, когда его значение меньше 10, и я хочу, чтобы оно возвращало свое неизменное значение каждый раз, когда оно достигает числа> 10.Что я сделал не так?

Неудачный код:

public class test {

  static int method(int r){

      int x = 0;
      x = x + r;
      if (x <=10) { 

      if (x >=10)    
          return x;}  //unsure about this part of the Code.
  return x;
  } 

        public static void main(String[] arg) {

        int i = method(4);
        System.out.println(i); //want it to output 4

         i = method(7); 
        System.out.println(i); //want it to output 4 because 4+7= 12. 12 >10

         i = method(5); //want it to output 9
        System.out.println(i);} 
  }

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

у вас есть проблам в вашем методе, измените его на:

public class test1 {

    static int x = 0;
    static int method(int r) {

        int t = x + r;
        if (t < 10) {
            x = t;
        }
        return x;
    }


            public static void main(String[] arg) {

            int i = method(4);
            System.out.println(i); //want it to output 4

             i = method(7); 
            System.out.println(i); //want it to output 4 because 4+7= 12. 12 >10

             i = method(5); //want it to output 9
            System.out.println(i);} 
      }

Вывод:

4
4
9
0 голосов
/ 03 июня 2018

x является локальной переменной.Если вы хотите, чтобы оно сохраняло свое значение между вызовами, вам придется сохранить его в элементе данных (в данном случае - статическом, поскольку method является статическим):

private static int x = 0;
static int method(int r) {
    int temp = x + r;
    if (temp < 10) {
        x = temp;
    }
    return x;
}
...