1.你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
2.源码如下
package count;
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 number = 0;
int count = 0;
int digit = 0;
number = in.nextInt();
while ( number != -1)
{
int a = number % 10;
if (a % 2 == 0)
{
count = count + 1;
}else
{
digit = digit + 1;
}
number = number / 10;
if (number == 0)
break;
}
System.out.println(count );
System.out.println(digit);
}
}
3.为什么直接输出1和0 不循环呢?
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = 0;
int count = 0;
int digit =0;
String str=in.nextLine();
String[] arr=str.split(" ");
int[] numberArr=new int[arr.length];
for (int i = 0; i < numberArr.length; i++) {
try {
numberArr[i]=Integer.parseInt(arr[i]);
} catch (Exception e) {
System.out.println("数据转换异常");
}
number=numberArr[i];
int a = number % 10;
if (a % 2 == 0)
{
count = count + 1;
}else
{
digit = digit + 1;
}
number = number / 10;
}
System.out.println(count );
System.out.println(digit);
}
我用了nextLine希望能对你有帮助
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int number = 0;
int count = 0;
int digit = 0;
number = in.nextInt();
int out = 10;
while ( number != -1 )
{
int a = number % 10;
if (a % 2 == 0)
{
System.out.println("偶数 : "+number);
count = count + 1;
}else
{
System.out.println("奇数 : "+number);
digit = digit + 1;
}
number = number / 10;
System.out.println("number / 10 : "+number);
if(number==0){
number = in.nextInt();
}
}
System.out.println(count);
System.out.println(digit);
}
修改了下代码,不知道是否是你想要的。