Значение функции всегда умножается на 2 - PullRequest
0 голосов
/ 18 октября 2019

Я создал функцию «m7» в своем классе, но эта функция всегда возвращает значение, умноженное на 2. Если я запускаю эту функцию в «psvm», она печатает правильное значение. В моем классе Алисы метод m7 () возвращает 10, что неверно, но если я запускаю этот метод в psvm, он возвращает 5, что правильно.

    package com.math.functions;

import java.util.*;

public class Alice {
    Integer[] rank= new Integer[7];
    Integer n=65;
    int count=0;
    public Alice() {
        rank[0]=100;
        rank[1]=100;
        rank[2]=90;
        rank[3]=80;
        rank[4]=75;
        rank[5]=60;
        rank[6]=n;
        //rank[6]=20;
        //rank[7]=10;
        //rank[8]=n;
        Arrays.sort(rank, Collections.reverseOrder());
    }
    public void print() {

        for (Integer a : rank) {
            System.out.println(a);
        }
    }
    public int m7() {
        for (int i = 0; i < rank.length; i++) {
            if (rank[i] == n) {
                break;
            }
            count++;
        }
        return count;
    }
    public void res(){
        int s = m7();
        System.out.println("this is the value of s here :"+s);
        Set<Integer> hash_Set = new HashSet<>();
        for(int i=0;i<=s/2;i++){
            System.out.println("hii");
            hash_Set.add(rank[i]);
        }
        for(Integer o:hash_Set){
            System.out.println(o);
            System.out.println("rank:"+hash_Set.size());
        }
    }

    public static void main(String[] args) {
        Alice a=new Alice();
        a.print();
        System.out.println("this is: "+a.m7());
        a.res();
    }
}

1 Ответ

3 голосов
/ 18 октября 2019

Вы повторно используете значение count от предыдущего запуска.

Не объявляйте count как переменную-член, сделайте ее локальной.

public int m7() {
    int count = 0; // HERE
    for (int i = 0; i < rank.length; i++) {
        if (rank[i] == n) {
            break;
        }
        count++;
    }
    return count;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...