Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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,我这里有一个java程序,要求用户输入十个整数,然后打印出奇数和偶数 import java.io.*; public class Count { public static void main(String[] args) { int i, , even_ctr=0, odd_ctr = 0; String input = " "; BufferedReader in = new BufferedReader ( new Input

我这里有一个java程序,要求用户输入十个整数,然后打印出奇数和偶数

import java.io.*;
public class Count {

    public static void main(String[] args) {

        int i, , even_ctr=0, odd_ctr = 0;
        String input = " ";

        BufferedReader in = new BufferedReader ( new InputStreamReader(System.in));

        for(i = 1; i <=10; i++){
            try{
            System.out.print("Input integer number: ");
                input = in.readLine();
               }catch(IOException e){
                System.out.println("Error!");
               }

               n = Integer.parseInt(input);

               if(n % 2 == 0)
                even_ctr++;      //counter for even
               if(n % 2 == 0)
                odd_ctr++;      //counter for odd
        }System.out.println("EVEN: " + even_ctr + "\nODD: "+ odd_ctr);
    }
}

我试图通过只使用一个计数器而不是两个计数器来更改程序。有人知道怎么做吗?

对于奇数检测或偶数检测,只需保持第一个计数器递增,但两者都可以。计算结束时,如果奇数计数器=4,输入的数字总数为10,然后10-ODDcounter=10-4=6是偶数的数目。

对于这一点,使用扫描器似乎同样有用,这样您就可以避免解析字符串的步骤。这也需要您导入java.util.Scanner,但您可以使用扫描器来获取字符串或整数

import java.io.*;
public class NewClass {

    public static void main(String[] args) {

        int i,n,  even_ctr=0;
        String input = " ";

        BufferedReader in = new BufferedReader ( new InputStreamReader(System.in));

        for(i = 1; i <=10; i++){
            try{
            System.out.print("Input integer number: ");
                input = in.readLine();
               }catch(IOException e){
                System.out.println("Error!");
               }

               n = Integer.parseInt(input);

               if(n % 2 == 0)
                even_ctr++;      

        }System.out.println("EVEN: " + even_ctr + "\nODD: "+ (10-even_ctr));
    }
}
Scanner in = new Scanner(System.in);
int input;
int evenCount = 0;

 for(i = 1; i <=10; i++){
        try{
        System.out.print("Input integer number: ");
            input = in.nextInt();
           }catch(IOException e){
            System.out.println("Error!");
           }

           if(input % 2 == 0)
              evenCount++;
    }
System.out.println("EVEN: " + evenCounter + "\nODD: "+ (10 - evenCounter);

包括在内。关闭;在方法结束时,关闭您使用的扫描仪或读卡器

跟踪奇数,偶数是10奇数?而且您的代码只对偶数整数递增两个计数器。这是一个无用的for循环。请检查。不鼓励只使用代码的答案,请帮助用户解释您的代码正在做什么,并指出其程序中的缺陷。作为旁注,我们的代码有一个空for循环,为什么还要保留它?问题要求只使用一个计数器,您也没有在代码中更改此计数器
package evenoddten;

import java.util.Scanner;

public class EvenOddTen {

    public static void main(String[] args) {

        int num1 = 0, num2, even = 0, count = 0;
        Scanner scr = new Scanner(System.in);
        System.out.print("Total Nos:");
        num2 = scr.nextInt();

        while(count<num2) {
            System.out.println("Enter no:");
            num1 = scr.nextInt();
            if (num1%2 == 0) {
                even = even + 1;
            }           
            count = count+1;
        }
        System.out.println("Even nos are:"+even);
        System.out.println("Odd nos are:"+(count - even));
    }  
}