プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。
Javaのプログラミング学習初心者です。

超初歩的な質問で大変申し訳ありません。
剰余の計算がわからなくてとても困っております。
a>bの場合、a%bの計算はできるのですが、a<bの場合のa%bの計算方法がわからないのです。

iが0の場合および1の場合は、下のどの条件に当てはまるのでしょうか。
(1) i%2==1
(2) i%2==0
iが0か1のときは、2で割っても余らないから(2)であるという理解でよろしいのでしょうか。
(質問の仕方がわかりずらかったら申し訳ありません)

初歩的すぎるせいか、調べても見つけられなくて困っています。
どうぞよろしくお願いいたします。

A 回答 (4件)

剰余とは小学校の算数で習う「余りの出る割り算」の余りを求める演算です。


「余りの出る割り算」と同様、Javaの剰余も

整数1 ÷ 整数2 = 商(整数) + 余り

となり、商は整数として計算されます。
つまり、「1÷2 = 1 … 1」ということです。「1÷2 = 0.5」とはなりません。

>0を2で割ると余りが0…というのは、割れないから0なのかな?

0はどんな数(ただし0を除く)で割っても割り切れます。
【例】
「0 ÷ 2 = 0」
「0 ÷ 100 = 0」

なので、「0 % 2」は余りが出ないので 0 になります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!!
わかりやすいです!

0は0以外のどんな数で割っても割り切れるんですね!覚えておきます。
でも、「1÷2 = 1」がわかりません…
なぜ1÷2は1なのでしょうか???割れないから1のままということなのでしょうか。
(もしかして、リンゴはなぜ"apple"というの?と同じレベルの質問をしてるかもしれませんが)

そこのところがどうしてもすっきりしないのですが、
もし再度ご回答いただけると幸いです。

お礼日時:2009/06/06 11:19

回答#2で誤記しました。

すみません。

「1÷2 = 1 … 1」ではなくて、正しくは
「1÷2 = 0 … 1」です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

今、m = q * n + r ( 0 ≦ r < n )を見て悩んでおりました(笑)。
突然qやrが出てきたもので、混乱しています(ほんとに無知ですいません)

「1÷2 = 0 … 1」ですか!!
これは、「1÷2は0で余りは1」という意味でよろしいでしょうか。

お礼日時:2009/06/06 12:04

整数で「 m 割る n 」の定義はこうです



m = q * n + r ( 0 ≦ r < n )

ここで r がすなわち m % n です。


m = 0 を n = 2 で割ると

0 = 0 * 2 + 0

です。

>とも思うのですが、1を2で割ると0.5になり、"int i"としている場合は
>小数点が切り捨てられるとテキストに書いてあったので、

実数型の演算はまた別の話です。
    • good
    • 0
この回答へのお礼

お礼が前後してしまって申し訳ありません。
qやrが何を表しているかわかりました。

問題を何度も解いていくうちに、わかったような気がします。
どうもありがとうございました。

お礼日時:2009/06/06 17:17

わからないのであれば仕方がない。


テストプログラムを作って、実際に計算してみればよろしかろう。

結果を補足にどうぞ。

この回答への補足

回答ありがとうございます。
そうでしたね!自分で実験すれば良かったんですよね!
結果、こうなりました。
i=0のときは、i%2==0
i=1のときは、i%2==1

でも、なぜこうなるのでしょうか。
0を2で割ると余りが0…というのは、割れないから0なのかな?
とも思うのですが、1を2で割ると0.5になり、"int i"としている場合は
小数点が切り捨てられるとテキストに書いてあったので、
やはり0になるのかなと思ってしまうのです。
それとも、0.5のときは四捨五入されて1になるということなのでしょうか。

もう一度ご回答いただければ大変助かります。
どうぞよろしくお願いいたします。

補足日時:2009/06/06 10:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!