A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
C系の言語だと、配列の要素の範囲をインデックスで
表すのに
mからnまで(m≦n)は、mとn+1で表わすことが多い。
例 0から9→0と10
これはインデックスの指す要素と、そのひとつ前の要素
の間に仕切り(壁)があると考えて、2個の仕切りで範囲を
表わすというやり方。C言語では言語仕様の中にこの考え方を
サポートする部分があります。
アイビームカーソルの位置などもこの考え方を使ってます。
Javaで文字の選択範囲を表わす方法もこれです。
この考え方でループ回すとき k=n+1 とすると
for(i=m; i < k; i++) {
}
とするのがCの伝統ですね。
別の考え方で範囲を示しても良いですが
出来ればこれに従った方が無難。
でないと読む方が少し苦労します。
No.3
- 回答日時:
どっちのほうが視覚的に分かりやすいか、で決まります。
No.1、No.2で回答があったように
配列の場合はインデックスが0から始まるので0~99までを処理します。
99という中途半端な数は余り好まれない傾向にありますし、
配列をループさせるときは0から始める(降順の場合は99からですが)ことが多いので
for(i = 0; i < 100; i++)
が一般的です。
人の数だけに注目した場合は1~100となるので
for(i = 1; i <= 100; i++)
と書かれることが多いでしょう。
No.2
- 回答日時:
> どうなれば≧とか<になったりするのですか?
とか言われてもねぇ(苦笑)。
「時と場合による」としか言いようないし、「ちったぁ自分で考えろ」とか言いたいトコなんですが・・・。
> 例えば10〇人分ループだと i≧100ですか?
全然違うし、どーしたもんやら(苦笑)。
ただまあ、フォーマットを決めたい、ってのは悪い事ではないでしょう。
良くあるパターンで言うと・・・基本的にはC言語の「配列の数え方」が考え方のベースになってるわけですが。
つまり、配列相手にループを回す場合どうなるか、ってのがC言語やC言語を参考にした言語を使う際の考え方の基本になっています。
配列 = { 1, 2, 3, 4, 5.... };
があるとしますよね。
さて、上の配列の要素で「1」が入ってるのは何番目でしょう?
フツーなら「1番目」って言いたいトコですが、それだと間違いです。
1が入ってるのはC言語だと「0番目」ですね。
C言語だと配列の要素は0番目、1番目、2番目・・・と参照されます。
上の例だと「1が入ってるのは0番目」、「2が入ってるのは1番目」、「3が入ってるのは2番目」・・・・となってますね。
さて、そうすると、仮に100要素がある配列を宣言したとします。
int array[100];
配列にあるのは0番目の要素から「99番目までの要素」です。100番目は存在しません。
(0から99までで「100個ある」って事です)
従って、上の配列を全部舐めてループをしたい場合、適当な数iを宣言した後、
for (i = 0; i < 100; i++) {
... }
と言うカタチになります。
上の配列で言うとarray[100](配列の100番目の要素)は「存在しない」ので、100を含まないように i < 100にする、ってのが良くあるパターンです。
(繰り返しますが「要素数」は100個あるけど、配列の要素を参照する「100番目」と言う添字は存在しない、って事です)
とまぁ、フツーはプログラミングやる人だと「番号は0から数えて」n未満、と言う考え方を「好みます」。
これが主流だ、って事ですね。
(ちなみにPascalと言う言語だと「配列は1から数える」らしいんで、こういう流儀にはなりません)
100+n人分のループだと
i = 0;から始めて i < 100 + n
でしょうね。
No.1
- 回答日時:
≧である必要があるときに≧
<である必要があるときに<
そうとしか答えようがありません。
あとは、***日本語で考えて*** 相応しいものを選びます。
> 例えば100人分ループだと i≧100ですか?
(1)i=0〜99 の100通りの数値を使うなら
(1-1) i=0から始めて、 i<100 の間ループする
(1-2) i=0から始めて、i≧100 になるまでループする(i≧100になったらループを止める)
(1-3) i=0から始めて、 i≦99 の間ループする
(1-4) i=0から始めて、i>99 になるまでループする(i>99になったらループを止める)
(1-5) i=99から始めて、 i>-1 の間ループする
(1-6) i=99から始めて、i≦-1 になるまでループする(i≦-1になったらループを止める)
(1-7) i=99から始めて、 i≧0 の間ループする
(1-8) i=99から始めて、i<0 になるまでループする(i<0になったらループを止める)
(2)i=1〜100 の100通りの数値を使うなら
(以下略)
と、極簡単に考えてもこれだけの表現があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 windows10のクリーンインストールが完了出来ない 2 2022/06/04 13:33
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- Java Java 南京錠 2 2023/02/04 11:46
- アニメ アニメやドラマを見てるとまたもう一度最初から見ると世界をループしてるような気分。 最終回まで見終わる 1 2022/07/20 22:44
- 数学 確率 箱の中に赤玉が3個、白玉が3個、青玉が3個入っている。この箱の中から玉を一個ずつ取り出し全ての 4 2023/01/27 18:35
- その他(コンピューター・テクノロジー) Ubuntu22.04ltsですが、たまにYou Tubeを聴いたり観たりしていると、無限ループでコ 2 2023/07/21 13:19
- ノートパソコン 【緊急】 半年ぶりくらいに家のパソコン(Windows)を使おうとしたのですが、立ち上げてサインイン 5 2022/11/14 03:18
- 数学 数学A、確率の問題です。 nを4以上の自然数とする。数字の1からnが書かれたカードが1枚ずつ、合計n 3 2023/07/02 22:54
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UWSCに制限時間を付けたいです
-
エクセルの当番表を作っていま...
-
画面を強制的に再描画させる方法
-
プログラムの機能を変えずに高...
-
VBA for i=1 to lastrow
-
UWSCの終了の仕方
-
DoEventsが必要な理由について
-
どなたかこのプログラミングを...
-
テキストボックスの名前に変数...
-
vb.netからエクセル関数書き込み
-
pythonでファイルのコメント行...
-
GIFアニメをループさせたくない
-
無限ループの防ぐ方法
-
WHILE (CHKIMG(”A.bmp”)=FALSE)...
-
UWSCのスクリプトで行き詰って...
-
uwsc条件並列とそれの抜け方
-
VBAでの一時停止と再開の方法
-
VBAで3秒だけ時間を止めたい
-
配列について
-
レインボー色ってどうやって表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vbscriptでIE自動入力(途中で...
おすすめ情報