gpt4 book ai didi

java - 函数值总是乘以 2

转载 作者:行者123 更新时间:2023-12-01 19:34:11 24 4
gpt4 key购买 nike

我在我的类中创建了一个函数“m7”,但该函数始终返回乘以 2 的值。如果我在“psvm”中运行此函数,它将打印正确的值。在我的 Alice 类中,方法 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();
}
}

最佳答案

您正在重复使用上次运行时的 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;
}

关于java - 函数值总是乘以 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58450235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com