无法让我的数组在0时取消

时间:2014-01-24 20:11:57

标签: java arrays

我正在尝试在用户输入0时取消我的数组,但它似乎想要取消任何输入的数字。

import java.util.Scanner;

public class Assignment2
{
     public static void main (String[] args)
     {

    Scanner scan= new Scanner(System.in);
    int count=0;
    double[] nums= new double[100];

    for(int i=0;i<nums.length;++i)
    {
        nums[i]= scan.nextDouble();
        nums[i]=i;
        if (i == 0){
            break;}
        count++;
        }
}
}

2 个答案:

答案 0 :(得分:5)

您正在测试i(您的循环计数器),而不是用户实际输入的内容。你可能想要:

nums[i] = scan.nextDouble();
if (nums[i] == 0) {
   break;
}

代替。另外,你的nums[i] = i行完全破坏任何DID输入,并用循环计数器值替换它,你基本上存储你的循环值。这使得用户输入毫无意义。

答案 1 :(得分:0)

你的问题在于你比较停止程序。您正在使用保持循环运行次数的变量。由于该变量从0开始,每当您键入任何值时,它将始终停止该程序,因为您将其与该计数器进行比较。

相反,您应该与数组中存储的值进行比较:

num[i] == 0


这可以按你的意愿工作:

import java.util.Scanner;

public class Assignment2
{
     public static void main (String[] args)
     {

    Scanner scan= new Scanner(System.in);
    int count=0;
    double[] nums= new double[100];

    for(int i=0;i<nums.length;++i){

        nums[i] = scan.nextDouble();  //stores your value

        if (nums[i] == 0){            //checks if the value in the ARRAY is 0
            break;          
        }

        count++;
        }
    }
}