我无法让我的代码工作。我试图获得所有偶数和奇数的数组,但每当我找到-1时我都必须停止。
editorialElement
答案 0 :(得分:1)
您的代码中存在许多问题:
首先,只有当代码为-1时,代码才会计算下一个整数,否则跳过迭代;
其次,你在分类操作输入上有点混乱: 从未填充数组,因此在 for 语句和模块操作中使用 array 没有任何操作感。 此外, scanner 构造函数没有源。
如果要插入要从System.in进行评估的数字,可以尝试以下固定代码:
import java.util.*;
public class Main {
private static List<Integer> even = new ArrayList();
private static List<Integer> odd = new ArrayList();
public static void classify(Scanner sc){
Integer number;
while(sc.hasNextInt()) {
number = sc.nextInt();
if(number==-1)
break;
if(number % 2 == 0)
even.add(number);
else
odd.add(number);
}
}
public static void display(List<Integer> list){
for(Integer i : list)
System.out.println(i);
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
classify(sc);
display(even);
}
}
答案 1 :(得分:0)
对于我刚刚在docs中阅读的内容,Scanner类构造函数需要一个source作为参数,并在您的行中:
Scanner sc = new Scanner(/*insert_source_object_here*/);
您没有提供任何来源,以下是可能的构造函数列表:
Scanner(File source)
Scanner(File source, String charsetName)
Scanner(InputStream source)
Scanner(InputStream source, String charsetName)
Scanner(Path source)
Scanner(Path source, String charsetName)
Scanner(Readable source)
Scanner(ReadableByteChannel source)
Scanner(ReadableByteChannel source, String charsetName)
Scanner(String source)
答案 2 :(得分:0)
您的代码中有许多错误
java.util.Scanner
if(numbers == -1)
条件此代码是对代码的一个小改进
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class EvenOdd{
private static List<Integer> array;
private static List<Integer> even;
private static List<Integer> odd;
private static Scanner sc;
public EvenOdd() {
array = new ArrayList<>();
even = new ArrayList<>();
odd = new ArrayList<>();
sc = new Scanner(System.in);
}
public void classify(){
for(int n : array){
if(n % 2 == 0) even.add(n);
else odd.add(n);
}
}
public void fillArray(){
int n = sc.nextInt();
do {
array.add(n);
n = sc.nextInt();
} while (n != -1);
}
public void display(List<Integer> list){
for(Integer i : list)
System.out.println(i);
}
public List<Integer> getEven() {
return even;
}
public List<Integer> getOdd() {
return odd;
}
public static void main(String[] args){
EvenOdd eo = new EvenOdd();
eo.fillArray();
eo.classify();
System.out.println("even");
eo.display(eo.getEven());
System.out.println("odd");
eo.display(eo.getOdd());
}
}