0

私はこれを調べましたが、あまり見つかりませんでした。コードは次のとおりです。

    public class Core {
        int amount = 0;
        public void startup(int Items) {
            int x = 0;
            System.out.println("Welcome Back,");
            while(x < amount) {
                amount++;
                x++;
            }
        }
        agendaitem[] item = new agendaitem[150];
        public void instantiate(String name, String status, String comments,int i) {
            item[i] = new agendaitem();
            item[i].name = name;
            item[i].complete = status;
            item[i].comments = comments;
        }
        public void error(String reason) {
            System.out.println("Error"+reason);
        }
        public void setitem(String input) throws Exception {
            Interface interf = new Interface();
            System.out.println(amount);
            int x = 0;
            while(x < amount) {
                interf.inputb(item[amount].name);
                break;
            }
        }
        public void setstatus() {

        }
        public void rename() {

        }
        public void delete() {

        }
    }

基本的には変数 amount の値をメソッド起動時の Items の値と同じになるように設定する必要があります。次に、setitem メソッドから amount にアクセスする必要があります。しかし、何らかの理由で、スタートアップを実行して値を 2 に設定した後でも、setitem は金額を 0 と見なします。何かアドバイス?ありがとう。:)

4

3 に答える 3

1

内のループ内startupで、 と の両方xをインクリメントしていますamount。したがって、少なくとも到達するまではx < amount、常にそうです。 x < amountamountMAXINT

デバッガーの使い方を学ぶことを強くお勧めします。このエラーはすぐに見つかります。

于 2013-09-09T20:27:12.463 に答える