Javaの質問で、一部だけ文字列が差し変わるコードについて

package Sampleprogram;

public class Onsen {
public static void main(String args[]) {
int x = 15;
for (int i = 1; i <= x; i++) {
if ((i % 8) == 0) {
System.out.print("温泉行きたい");
} else {
System.out.print("こんばんは");
}
System.out.println();
}
}
}
のようなプログラムがあります。これの出力結果は、
-------
こんばんは
こんばんは
こんばんは
こんばんは
こんばんは
こんばんは
こんばんは
温泉行きたい
こんばんは



-------
なのですが。
if ((i % 8) == 0) {
System.out.print("温泉行きたい");
の箇所の意味が判らないです。
なぜこのように入れると、8番目の文字列だけ「温泉行きたい」に変わるのでしょうか?
Javaの本を探しても、該当箇所が見つからず…納得のいく説明をいただけますと助かります。よろしくお願いします。

回答の条件
  • 1人10回まで
  • 登録:2018/10/07 00:46:15
  • 終了:2018/10/07 10:59:15

ベストアンサー

id:degucho No.1

degucho回答回数267ベストアンサー獲得回数732018/10/07 00:56:32

ポイント200pt

%は剰余を求める演算子なので
8で割ったあまりがゼロ=8番目となります

ループが15回なのでこの場合はi == 8と書くほうがいいと思いますが
8の倍数で「温泉へ行きたい」と表示するってサンプルのほうが分かりやすいですね
https://www.javadrive.jp/start/ope/index1.html

id:moon-fondu

算術演算子だったんですか!ありがとうございます、理解できました(^^;

2018/10/07 10:59:03

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません