ここに最初の質問がありますので、無礼にしてください...私のif-elseステートメントは一度しか動作しません
とにかく、私は最近、if/elseの問題を発見しました。下に書かれたコードを表示します。問題は、私の祖父が一度しか働かない場合です。私はレジスタから一致する単語を書いたとき、elseはもう動作しません。それはコード内の任意のエラーですか、それとも私を盗んでいるnetbeansですか?私が得ることができるどんな助けにも感謝します。 質問は非常に明確ではありません
private void årsök_txfActionPerformed(java.awt.event.ActionEvent evt) {
try {
int söktår = Integer.valueOf(årsök_txf.getText());
info_txa.setText("");
for (Register register1 : register) {
int finns = register1.getAr();
if (finns==söktår) {
info_txa.append(register1 + "");
hittad = true;
} else if (hittad==false) {
info_txa.setText("Tyvärr så utgavs det inga filmer "+söktår);
}
}
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Vänligen mata in ett tal som sökt utgivningsår!");
}
}
が、それはケースどこを持っていないことを計画しました最初のifを入力しませんが、 'hittad == true'はどこに入りますか?なぜなら、最初の 'if'文を入力するとすぐに' if(hittad == false) 'コードブロックを入力することはないからです。 – AntonH
を 'if'に' hittad'を 'true'に設定し、' else if'が 'false'をチェックするので、最初の' if'を一度ヒットした後、 'else if'は' hittadはfalseです。 'hittad'はクラス内で定義されているようですので、' false'に戻すコードがない限り、常に 'true'と' else if'を打つことはできません。 – litelite
もし私があなたを正しく理解したら、いいえ。私はhittad == trueの場合はしたくない。私のプログラムが特定の年の後に検索するようにしてください。私はプログラムには特定の年が含まれていますが、そうでなければ「検索した年は見つかりませんでした」がスウェーデン語であることをユーザーに伝えたいと思います。しかし問題は最初の試合までしか動作しないということです。プログラムが空白の答えを出すだけです... –