※ ChatGPTを利用し、要約された質問です(原文:forを使用した文字列表示プログラムについて)
for文を使用した文字列表示プログラムについて
このQ&Aのポイント
Javaの初心者の方から、for文を使用した文字列表示プログラムについての疑問です。
プログラムの実行結果が予想通りにならず、なぜそのような表示になるのか疑問に思っています。
具体的には、プログラム内でxPositionとyPositionの値が変化する様子が見受けられず、なぜx位置だけで星が増えていくのか理解できないとのことです。
お世話になります。
Javaの超初心者です。
以下のプログラムがあるのですが、どうしてもわからないのでご教授願います。
import java.applet.*;
import java.awt.*;
public class DrawStarRow extends Applet {
public void paint(Graphics g){
String star = "";
int xPosition = 10, yPosition = 60;
//★を文字列変数に1個ずつ追加するループ文
for(int i=0; i<10; i++){
star = star + "★";
}
//10個の★マークをアプレット上に描画する
g.drawString(star, xPosition, yPosition);
}
}
これを実行すると、(10, 60)の位置から右側に10個星が表示されるのですが、
なぜ「右側」に続けて表示されるのかがわかりません。
今までは、例えばg.drawOval(10+i*10、10+i*10, 20, 20)とかで、
i=i+1であればxもyも変化するのでわかるんですが、
この式は全くそういうことも書いておらず、それなのにx位置だけ
自動的に変わった位置で星がどんどん増えていくんですよね。
この式の中のxPositionもyPositionも、iに関連付けされていないようですが、
そのため、iが0でも3でもx位置とy位置は同じように見えてしまうのです。
説明がへたくそで申し訳ありませんが、どなたか理由を説明していただけないでしょうか。
どうぞよろしくお願いいたします。
お礼
回答ありがとうございます! なるほど! for(int i=0; i<10; i++){ star = star + "★"; } の部分ですでに★が10個できているというわけですね! ありがとうございます!!