日期:2014-05-20  浏览次数:20714 次

一个循环的问题!求围观啊
public static void main(String[] args) {
int[] input=new int[10];
for(int i=0;i<input.length;i++)
{
System.out.println("请您输入整数");
input[i]=new Scanner(System.in).nextInt();
}
for(int i=0;i<input.length;i++){
if(input[i]==input[i+1])
System.out.println("请重新一个输入整数");
input[i+1]=new Scanner(System.in).nextInt();


}


System.out.println(input[input.length]);

}
  大家好,我的这个程序有错误吗?(题目:编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,最后将这10个数输出。)

------解决方案--------------------
你自己写的逻辑有问题,最后一行代码也有问题,参考我下面的实现吧
不过 这里无法处理 0 的问题,因为int数组初始化 默认就给值为0了
Java code

import java.util.Scanner;
import java.util.Arrays;

/**
 * Created by IntelliJ IDEA.
 * User: gaoyong
 * Date: 2012-8-6
 * Time: 0:11:23
 * To change this template use File | Settings | File Templates.
 */
public class InputTest {
    public static void main(String[] args) {
        int[] input=new int[10];
        for(int i=0;i<input.length;i++)
        {
            System.out.println("请您输入整数");
            input[i]=new Scanner(System.in).nextInt();
            for(int j=0;j<10&&j<i;j++){
                if(input[j]==input[i]){
                    System.out.println("请重新一个输入整数");
                    input[i]=new Scanner(System.in).nextInt();
                }
            }
        }

        System.out.println(Arrays.toString(input));
//        System.out.println(input[input.length]);

    }
}

------解决方案--------------------
import java.util.Scanner;

public class Test1
{
// 编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,最后将这10个数输出
public static void main(String[] args)
{
int[] input = new int[10];
for (int i = 0; i < input.length; i++)
{
System.out.println("请您输入第" + (i +1)+ "整数");
input[i] = new Scanner(System.in).nextInt();
for (int j = 0; j < i; j++)
{
if (input[j] == input[i])
{
System.out.println("请重新一个输入第" + (i+1) + "整数");
input[i] = new Scanner(System.in).nextInt();
j=-1;
continue;
}
}
}

for (int j = 0; j < input.length; j++)
{
System.out.println(input[j]);
}
}
}