これは宿題の問題です..私はQまたはqを入力し、投票数が停止されるまで、投票をカウントするJOptionPane
を使用するプログラムに取り組んでいます。その後、ユーザーに実際に終了したいかどうかを尋ねるshowConfirmDialog
を起動します。プログラムの主なタスクは完了しましたが、showInputDialogではY、y、N、n、Q、またはq以外のエントリは無視されることが指示されています。java.lang.StringIndexOutOfBoundsExceptionとshowInputDialog
何らかの理由で、ダイアログボックス上の任意のボタンがクリックされるたびに、プログラムがシャットダウンした、ので、私はこれで問題を抱えています。プログラムの残りの部分は正常に動作しますが、実行するとコンパイルエラー通知が表示され、この問題が発生します。
ここに私のコードです。ここで何が起こっているか考えてみましょうか?ご協力いただきありがとうございます。
EDIT - ちょうどあなたが知っている通り、System.out.println("HI");
行があったので、その問題がその場所にあるcontinue文のif文全体であるかどうかを判断できました。
EDIT#2 - 最初のプログラム(今はVoteCount2
)の下にあなたのアドバイス(少なくとも私がそれをどのように解釈したか)を使ってコードの編集を掲載しました。
EDIT#3 - 私はそれを再フォーマットし、あなたのアドバイスに従うことを試みました。私が何か間違ったことをした場合、私は残念ですが、私は何をすべきか分かりません。
編集#4 - ここで私はそれが働いて得た方法..です古いプログラムの
Do { String voteString = "";
voteString = JOptionPane.showInputDialog(null, "Enter 'Y' to vote yes, 'N' to vote no, or 'Q' to quit voting", "Vote Now!", JOptionPane.OK_CANCEL_OPTION);
if (voteString == null || voteString.length() == 0) continue;
else if(voteString.toLowerCase().equals("y"))
yesVotes++;
else if (voteString.toLowerCase().equals("n"))
noVotes++;
残り
package javaapplication16;
import javax.swing.JOptionPane;
public class VoteCount {
public static void main(String[] args) {
int yesVotes = 0, noVotes = 0, totalVotes = 0;
totalVotes = yesVotes + noVotes;
char vote;
int reply = 1;
int option = 0;
{
do {
String voteString = JOptionPane.showInputDialog(null, "Enter 'Y' to vote yes, 'N' to vote no, or 'Q' to quit voting", "Vote Now!", JOptionPane.OK_CANCEL_OPTION);
vote = voteString.charAt(0);
if (vote == 'Y' || vote == 'y')
yesVotes++;
if (vote == 'N' || vote == 'n')
noVotes++;
if (option == JOptionPane.OK_OPTION)
System.out.println("HI");
if (option == JOptionPane.CANCEL_OPTION)
continue;
if (option == JOptionPane.CLOSED_OPTION)
continue;
{
}
if (vote == 'Q' || vote == 'q')
{
reply = JOptionPane.showConfirmDialog(null, "Quit?", "Warning!", JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
JOptionPane.showMessageDialog(null, "yes " + yesVotes + " no " + noVotes + " total " + totalVotes);
else if (reply != JOptionPane.YES_OPTION);
continue;
}
} while (reply != JOptionPane.YES_OPTION);
}
}
}
package javaapplication16;
import javax.swing.JOptionPane;
public class VoteCount {
public static void main(String[] args) {
int yesVotes = 0, noVotes = 0, totalVotes = 0;
totalVotes = yesVotes + noVotes;
char vote;
int reply = 1;
{
do {
String voteString = JOptionPane.showInputDialog(null, "Enter 'Y' to vote yes, 'N' to vote no, or 'Q' to quit voting", "Vote Now!", JOptionPane.OK_CANCEL_OPTION);
vote = voteString.charAt(0);
if (voteString == null || voteString.length() == 0)
vote = 'q';
if (voteString.toLowerCase().equals("y"))
yesVotes++;
if (voteString.toLowerCase().equals("n"))
noVotes++;
{
}
if (voteString.toLowerCase().equals("q"))
{
reply = JOptionPane.showConfirmDialog(null, "Quit?", "Warning!", JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
JOptionPane.showMessageDialog(null, "yes " + yesVotes + " no " + noVotes + " total " + totalVotes);
else if (reply != JOptionPane.YES_OPTION);
continue;
}
} while (reply != JOptionPane.YES_OPTION);
}
}
}
宿題があれば;宿題に問題がある –
ありがとう、私はやった。 –
初め以外のオプションはどこで設定しますか? –