- ベストアンサー
自分でプログラミング組んで分からないことがあるんで
偶然試したら動きました でもイマイチ理解できない部分がありまして恥を忍んで質問させていただきます java A{ public static void main(String[]args){ int count=0; if(++count%10==0){ System.out.print("*"); } } } このif(++count%10==0){ } ってどういう処理をしていますか? countは何回足し続けていますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 補足にあるプログラムなら、 for文で(iが0から99まで)100回ループしているので、 ループ内でcountは1つずつ100回加算されます(1~100までカウントされます)。 countの値がそれぞれ10,20,30,40,50,60,70,80,90,100になった時に if文の条件がtrueとなり、System.out.print("*")が実行されますので、 System.out.print("*")は10回実行されます。 つまり、*文字が10個表示されるはずです。
その他の回答 (3)
- jjon-com
- ベストアンサー率61% (1599/2592)
補足・訂正後のコードを実行すると ********** と表示されます。 http://ideone.com/oHWBDV 上記リンク先のサービスでどうやってJavaソースファイル名を与えるかを知らないので 一行目を class Sample としましたけれど, 一行目が public class Sample なら Javaソースファイル名を Sample.java としてください。
お礼
ご丁寧にサイトに乗せて頂いて有難うございます。 参考にさせていただきます
- Lchan0211b
- ベストアンサー率61% (573/930)
質問文にあるプログラムは、特にforやwhileでループしていないので、 ++countでcountが0から1になり、if(1%10==0)がfalseとなるので、 「System.out.print("*")」は通過せず(*文字は何も表示されず) プログラム終了になると思います。 countは1回足されておしまいです。 偶然試したら動いたプログラムというのは、本当にこの通りですか? どんな動作を偶然動いたと認識したのですか?
お礼
どんな動作を偶然動いたと認識したのですか? >>10の倍数の計算を求める方法を別の方法で考えられないかと思って組んでみました。 でも組んでみていまいちわからななくて組んで状況です
補足
すみません・・・訂正します。 public class Sample { public static void main(String[]args){ int count=0; for(int i=0; i<100; i++){ if(++count%10==0){ System.out.print("*"); } } } }
- ponta1971
- ベストアンサー率30% (361/1191)
++countでcount=count+1をしています。 ++count%10では++countを10で割った余りを求めています。 なので++count%10==0では余りが0になったときと言うことになります。 countは10になるまで、10回足し続け、10になったときにFalseになってif文を抜けます。 たぶんこのような動きをしていると思います。 画面に*が9個表示されていませんか?
補足
すみません・・・補足します public class Sample { public static void main(String[]args){ int count=0; for(int i=0; i<100; i++){ if(++count%10==0){ System.out.print("*"); } } } } です 出力結果質問文では一個も表示されませんでした
お礼
ご丁寧に有難うございます。 補足のほうが結果的には動きましたが組んでいてわからなかって指摘するひとが困っていましたでも本当に助かります。 なるほどcountの回数で判定しているんですね。 今までモヤモヤした状況が続いていたんですっきりしました。 ベストアンサーにさせていただきます