クラスの例があります。新しいカードを作成し、配列に入れます。カードの数を制御し、カードの数が 54 を超える場合はフローを終了したい:
public class Card {
private final String rank;
private final String suit;
private String[][] cards;
private static int NoC = 0;
public Card(String suit, String rank) {
if (NoC >= 54) {
System.out.println("You cannot create any more cards");
// and this "return" doesn't work correctly. NetBeans says "variable rank might not have been initialized"
return;
}
this.suit = suit;
this.rank = rank;
cards = new String[54][2];
cards[NoC][0] = this.suit;
cards[NoC][1] = this.rank;
NoC = NoC + 1;
}
プログラムはエラーなしでコンパイルされます。そして、期待どおりに機能します。55 番目のカードが作成されている場合、IF
句に移動し、「これ以上カードを作成できません」という通知が出力されますが、 「コンパイルできないソース コード - 変数ランクが初期化されていない可能性があります」という警告もスローされます。
正しく実行するにはどうすればよいですか?コマンドの代わりに smth else を使用する必要がありますreturn
か?