2

変数を動的に割り当てようとしていますが、その方法がわかりません。

私のプログラムがすべきこと:

「ユーザーに 3 つの辺の長さを入力して、図形が三角形かどうかを判断させるプログラムを作成してください。」

これは私がこれまでに持っているものです:

package triangle;
import javax.swing.JOptionPane;
public class Triangle {
    public static void main(String[] args) {
        String x = JOptionPane.showInputDialog("Please enter the side lengths of a     triangle with each side \nseparated with a ',' and without spaces. (eg. 1,2,3)");
        x += ",";
        int y = -1, a = 0; 
        double z;
        for(int i = 0; i < x.length(); i++)
        {
            if(x.charAt(i) == ',')
            {
                z = Double.parseDouble(x.substring((y + 1), i));
                y = i;
                a += z;
            }
        }
    }
}

私がやりたいのは、これを if ステートメントに含めることです。

int a++;
z(a) = Double.parseDouble(x.substring((y + 1), i));

しかし、これは機能しないことがわかったので、ある種の配列が必要です。悲しいことに、私のオンライン クラスはまだ配列を開始しておらず、私自身の学習ではまだそれらを把握していません。

3 つの変数 (z1、z2、z3) を作成し、if ステートメント内でそれぞれに整数を割り当てたいと思います。

編集:これは、私が今望んでいたように機能する修正されたコードです。これが将来他の誰かに役立つことを願っています!

package triangle;
import javax.swing.JOptionPane;
public class Triangle {
    public static void main(String[] args) {
        String x = JOptionPane.showInputDialog("Please enter the side lengths of a     triangle with each side \nseparated with a ',' and without spaces. (eg. 1,2,3)");
        x += ",";
        int y = -1, a = 0; 
        Double[] z = new Double[3];
        for(int i = 0; i < x.length(); i++)
        {
            if(x.charAt(i) == ',')
            {
                z[a] = Double.parseDouble(x.substring((y + 1), i));
                y = i;
                a++;
            }
        }
        //Some test code to see if it was working
        System.out.println(z[0]);
        System.out.println(z[1]);
        System.out.println(z[2]);
    }
}
4

3 に答える 3

1

配列を使用する必要はありません。特に、配列に慣れていない場合はなおさらです。単にScannerクラスを使用して、次のようなことを行うことができます

Scanner in = new Scanner(System.in); // this will read from the standard system input
System.out.println("Please enter three lengths of sides: ");
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();

そして、この図形が三角形かどうかをチェックするロジックを書きます (それが宿題のポイントだと思います)。

arrays を使用したい場合は、次のようにして宣言できます。

int[] sidesLenghtsArray = new int[3]; 

そして、3 つの異なるint変数を参照する代わりに、単純に配列要素を参照できます。

int[0] = in.nextInt();
int[1] = in.nextInt();
int[2] = in.nextInt();

覚えておいてください - 括弧内の数字は配列が持つ要素の数ですが、その要素を参照すると、0 から数え始めint[0]ますint[2]

于 2013-10-27T22:32:26.567 に答える