1

私はJavaプログラミングが初めてです。配列にキーボードからの整数を入力できる方法があるかどうかを知りたいです (範囲: 10 から 65)。これが私のコードです:

public static void main(String[] args)      
{
    //Keyboard Initialization
    Scanner kbin = new Scanner(System.in);

    //a.Declare an array to hold 10 intgers values
    int list[]=new int[10];     
    int i=0;
    //b.Fill the array with intgers from the keyboard(range: 10 to 50).
    System.out.print("\n\tInput numbers from 10 to 50: \n");
    list[i]= kbin.nextInt();
    if(10<=list[i] && list[i] <= 50)
    {
        for(i=1; i<=9;i++)
        {
            list [i] = kbin.nextInt();      
        }
    }
}

助けてください。ありがとう!

4

4 に答える 4

1

これで直るはず...

System.out.print("\n\tInput numbers from 10 to 50: \n");
for(int i=0; i<10;)
{
    int k = kbin.nextInt();      
    if (k >= 10 && k <= 50)
    {
        list[i] = k;
        ++i;
    }
}
于 2013-04-17T02:14:24.337 に答える
1

あなたの意図をきちんと理解していれば...

有効な数字が 10 個になるまでループする必要があります。ユーザーが入力した数値が範囲外の場合は、破棄する必要があります。

import java.util.Scanner;

public class TestStuff {

    public static void main(String[] args) {
        //Keyboard Initialization
        Scanner kbin = new Scanner(System.in);

        //a.Declare an array to hold 10 intgers values
        int list[] = new int[10];
        int i = 0;

        System.out.print("\n\tInput numbers from 10 to 50: \n");
        while (i < 10) {
            //b.Fill the array with intgers from the keyboard(range: 10 to 50).
            int value = kbin.nextInt();
            if (value >= 10 && value <= 50) {
                list[i] = value;
                i++;
            } else {
                System.out.println("!! Bad number !!");
            }
        }
        for (int value : list) {
            System.out.println("..." + value);
        }
    }
}

出力例...

    Input numbers from 10 to 50: 
1
!! Bad number !!
2
!! Bad number !!
3
!! Bad number !!
4
!! Bad number !!
5
!! Bad number !!
6
!! Bad number !!
7
!! Bad number !!
8
!! Bad number !!
9
!! Bad number !!
10
11
12
13
14
15
16
17
18
19
...10
...11
...12
...13
...14
...15
...16
...17
...18
...19
于 2013-04-17T02:14:38.130 に答える
0

あなたが何をしようとしているのか、よくわかりません。しかし、ユーザーが入力した最初の 10 個の数字を取得しようとしていると思いますか?

覚えておくべき重要なことの 1 つは、Java (および他の言語) が 0 ベースのインデックスを使用することです。したがって、 for ループ where i = 1, i <= 9; i++ 0 から始めるべきだと思いますが、ここで何をしようとしているのかわかりません。

于 2013-04-17T02:13:28.957 に答える