错误示例:
import java.util.Scanner;
public class Demo
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数组:");
double[] num = new double[6];
int i = 0; //用nextDouble()将输入流中得数据放入一维double数组num中
while(sc.nextDouble() != -1) //当输入-1时结束
{
num[i] = sc.nextDouble();
i++;
}
System.out.println("数组的内容:");
for(int j = 0; j < 6; j++) //利用for循环将num数组中的内容输出
{
System.out.print(num[j] + " ");
}
}
}
错误原因:因为在上面的代码中的while中用了sc.nextDouble()判断了,下面循环体中的另一个sc.nextDouble()读入下一个数据。比如:本例中while中用了sc .nextDouble()先读入1用于判断,循环体中的另一个sc.nextDouble()读入2放入num数组中了。
正确示例:
import java.util.Scanner;
public class Demo
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数组:");
double[] num = new double[6];
int i = 0; //用nextDouble()将输入流中得数据放入一维double数组num中
double temp; //利用temp存储
while((temp =sc.nextDouble())!= -1) //当输入-1时结束
{
num[i] = temp;
i++;
}
System.out.println("数组的内容:");
for(int j = 0; j < 6; j++) //利用for循环将num数组中的内容输出
{
System.out.print(num[j] + " ");
}
}