• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[至急!]Javaのプログラミング)

[至急!]Javaプログラミングの質問:野球のBSOカウンタがうまく動かない

このQ&Aのポイント
  • Javaのプログラムで野球のBSOカウンタを作ろうとしていますが、うまく動かない問題が発生しています。入力と出力のループがうまく行えず、改良が必要です。
  • プログラムは3つのアウトカウントまで、入力が「s」の場合はSのカウンタに「〇」を表示し、入力が「b」の場合はBのカウンタに「〇」を表示し、入力が「o」の場合はOのカウンタに「〇」を表示します。
  • 現在、入力と出力の処理が正しく行われず、プログラムがうまく動かない状況です。改良して動作させる方法を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • drum_KT
  • ベストアンサー率43% (1108/2554)
回答No.2

ANo.1の補足読みました。 えーと、毎回出力するということは、最初の方にあるwhileループの中に出力も入ってないといけないということだと思うんですが、カッコの数を見る限り、 System.out.println("入力が違います。"); } } ↑このカッコでwhileループが終わってませんか? そうすると、それより下はループから抜けた後に1度しか実行されませんけども。(笑) あと、うまくいかない場合は「どういう風にうまくいかないのか?」を書かないと、普通は他の人はソースいちいち読んでくれませんよ。

quartett
質問者

お礼

ご忠告と回答ありがとうございます。次からはそのようにしたいと思います。ありがとうございました。これを元に拡張していくつもりです。

その他の回答 (2)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

import java.io.*; public class Q7588996 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); //String str=br.readLine(); //char hantei=str.charAt(0); int sc=0,bc=0,oc=0; while(oc<3){ String str=br.readLine(); char hantei=str.charAt(0); if(hantei=='s') { sc=sc+1; if(sc==3) { oc=oc+1; sc=0; bc=0; } } else if(hantei=='b') { bc=bc+1; if(bc==4) { sc=0; bc=0; } } else if(hantei=='o') { oc=oc+1; sc=0; bc=0; } else { System.out.println("入力が違います。"); } System.out.print("B "); for(int i=0;i<bc;i++){ System.out.print("〇"); } System.out.println(""); System.out.print("S "); for(int i=0;i<sc;i++){ System.out.print("〇"); } System.out.println(""); System.out.print("O "); for(int i=0;i<oc;i++){ System.out.print("〇"); } System.out.println(""); } } }

quartett
質問者

お礼

ありがとうございました。おかげで何とかになりそうです。

  • drum_KT
  • ベストアンサー率43% (1108/2554)
回答No.1

全部は見てないけど、例えばこの部分。(見づらいので全角でインデントしてみました) if(hantei=='s') {   c=sc+1;   if(sc==3)     oc=oc+1;     sc=0;     bc=0; } 意味としては上のようにインデントしたように動かしたいのだと思うけども、そうすると {} が足りない。正しくは、 if(hantei=='s') {   sc=sc+1;   if(sc==3)   {     oc=oc+1;     sc=0;     bc=0;   } } だよね。他のところも同じように間違っていると思うので、全体的に見直しが必要です。

quartett
質問者

補足

 回答ありがとうございます。いくつか直してみましたがやはり希望通りには行きません。一度入力したらそのたびにBSOが表示されるようにしたのですが・・・

関連するQ&A

専門家に質問してみよう