3.1奇偶个数***(存疑待解)***
题目内容:
你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
输入格式:
一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。
输出格式:
两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。
输入样例:
9 3 4 2 5 7 -1
输出样例:
4 2
使用While循环语句:
import java.util.Scanner;
public class Count {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int x;
int count1=0, count2=0;
x = in.nextInt();
while (x != -1)
{
if (x%2 == 1)//奇数个数
{
count1 = count1 +1;
}
if (x%2 == 0)//偶数个数
{
count2 = count2 +1;
}
x = in.nextInt();
}
System.out.println(count1+" "+count2);
}
}
使用Do…While循环语句:
import java.util.Scanner;
public class Count{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x;
int count1 = 0, count2 = 0;
do{
x = in.nextInt();
if(x%2 == 1)//奇数个数
{
count1 = count1 + 1;
}else if(x%2 == 0)//偶数个数
{
count2 = count2 + 1;
}
}while(x != -1);
System.out.println(count1+" "+count2);
}
}
本人疑惑:因为本题要求整数范围在(0,100000),如果我在进入While/Do While循环之前判断输入的数据是否在(0,100000)范围,在Mooc课程提交作业结果提示我用例4这一项显示“没有数” 0分,但如果我把这个范围去掉就可以得满分,可是这明显不符合题目要求。想知道怎么做到既能判断范围又能执行循环程序。
如果同样在学习Java并且看到这篇文章的小伙伴知道原因或者解答的方法,还请不吝赐教,感谢~