Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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中运行次数的计数器_Java - Fatal编程技术网

用于计算java中运行次数的计数器

用于计算java中运行次数的计数器,java,Java,这是我的代码,它获取一个输入值并将其与一个随机值进行比较 我有15次运行代码来估计并得到输入值等于代码决定的随机值。。。 我想做一个计数器来计算我运行代码的次数。。。 我试着把count++;在代码的不同地方,但我没有得到正确的答案。。。你认为伯爵在哪里;应该放在得到的运行次数在输出。。。 谢谢 这是我的密码 package person; import java.util.Random; import java.util.Scanner; public class Cat { p

这是我的代码,它获取一个输入值并将其与一个随机值进行比较 我有15次运行代码来估计并得到输入值等于代码决定的随机值。。。 我想做一个计数器来计算我运行代码的次数。。。 我试着把count++;在代码的不同地方,但我没有得到正确的答案。。。你认为伯爵在哪里;应该放在得到的运行次数在输出。。。 谢谢

这是我的密码

package person;

import java.util.Random;
import java.util.Scanner;

public class Cat {

    public static void main(String[] args) {

        int max = 100;
        int min = 0;
        int diff = max-min;
        Random rn = new Random();
        int i = rn.nextInt(diff+1);
        i+=min;
        for (int k=0; k<15; k++){
          int count=0;
          Scanner sb = new Scanner(System.in);
          System.out.println("Enter your number");
          int x = sb.nextInt();
          if(x>i){
            System.out.println(x+"is bigger than i");
          } else if(x<i){
            System.out.println(x+"is smaller than i");
          } else if (x==i){
            System.out.println(x+"is equals to i "+" "+" no. of try"+count);
            break;
          }
        }
    }
}

你的方法的问题是你的计数在循环中,所以它总是被重置。可以将其移到循环外,也可以只打印计数器循环变量

package person;

import java.util.Random;
import java.util.Scanner;

public class Cat {

    public static void main(String[] args) {

        int max = 100;
        int min = 0;
        int diff = max-min;
        Random rn = new Random();
        int i = rn.nextInt(diff+1);
        i+=min;
        int k;
        for (k=0; k<15; k++) {
            Scanner sb = new Scanner(System.in);
            System.out.println("Enter your number");
            int x = sb.nextInt();
            if(x>i) {
                System.out.println(x+"is bigger than i");
            } else if(x<i) {
                System.out.println(x+"is smaller than i");
            } else if (x==i) {
                System.out.println(x+"is equals to i "+" "+" no. of try"+k+1);
                break;    
            }
        }
        if(sb !=null) {
            sb.close();
        }
    }
}

这是因为在for循环中将count设置为0。移动

int count = 0;
在for循环上方添加

count++;
在for循环的开头。如果你在最后有它,你就不会计算最后一次运行时循环可能会爆发。把它放在循环的开头意味着每次你甚至开始寻找随机生成的数字的过程时,你都一定要数数


但实际上,最好只使用look计数器k来跟踪时间的数量。当您已经有k来跟踪所有内容时,不需要在另一个变量上浪费额外的空间。请小心,因为k从0开始,所以如果使用k,请确保在运行次数中添加1。

您必须将count的值存储在一个文件中,以便知道您运行代码的次数。@Mr.Robot我不敢相信您刚刚告诉他,这完全错了!你也应该将你的扫描器移出循环,这样你就不会在每次迭代中都创建一个。我看到这个资源泄漏:“sb”永远不会作为扫描器旁边的注释关闭,这不会产生任何问题,但是如何修复代码来移除这个注释资源泄漏:“sb”永远不会关闭..谢谢结束检查如果sb不为null,那么做sb.close;非常感谢。当我尝试5次时,输出为4。。。如何更正输出?由于K从0…15运行,因此需要执行K+1或可以从1运行。。。15,循环条件为k