
参考書を読んでいて分からないところが有りました。
「配列aの値を先頭から見ていき、その値が-1になるま配列bにコピーしていく。そのとき-1という値もコピーする。という処理をするものです。-1という値もコピーするため、このループは最低1回は実行されることになります。
i=0;
do{
b[i]=a[i];
}while(b[i++]!=-1);
」
この場合、a[0]が-1のときにはb[0]に-1がコピーされるかもしれませんが、そうでない場合は「そのとき-1という値もコピーする。」というのは出来ないと思うのですが、どなたかご教授宜しくお願いします。
No.3ベストアンサー
- 回答日時:
質問のプログラムを文章で書くと、
(1)i=0を実行する。
(2)a[i]をb[i]にコピーする。
(3)b[i]が-1なら、i=i+1を実行してループを抜ける。
(4)そうでなければ、i=i+1を実行して(2)へ飛ぶ。
となりますね。
これでお分かりのように、コピーして判定してからiを増やしています。
だからTEXTのストッパー(-1)は、必ず(余分に)コピーされます。
このやり方は可変長のTEXTのコピーでよく使われます。
(コピー先にもストッパーをつけておくためです)
No.2
- 回答日時:
while(b[i++]!=-1);
i++と書くと、i の値が参照されたあと i += 1 が実行されるため、b[i] == -1 も問題なくコピーされます。
while (1) {
b[i] = a[i];
if (b[i] == -1) break;
i++;
}
と同義です。
No.1
- 回答日時:
参考書が悪いのか貴方の解釈が悪いのかどっちと言われると??な気もしますが
例題の処理は配列Aの内容を配列Bに代入するロジックよね?
但し終了条件はb[i++]!=-1の時ですからa[i]に-1が入っている所まで代入しますよ。
例えば
a[]={1,10,3,-1,5}
とする時bには
b[0]=1
b[1]=10
b[2]=3
b[3]=-1
となります、b[3]に-1が入っていますよね?
だから「そのとき-1という値もコピーする」という但し書きがかかれているのです。
おわかりになりましたか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- その他(Microsoft Office) エクセルマクロ オートフィルターでで選択コピー 2 2022/04/18 11:05
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
C++言語で、構造体のコピーは可...
-
Activesheet.Pasteで困っています
-
DataTableに入っているデータを...
-
【UWSC】WEBページ内コピーした...
-
Ctrl + Cなど複数の入力キー...
-
jakarta poiを使用し、EXCELの...
-
マウントしたディスクにcpで、...
-
Listviewに表示された文字のコ...
-
Eclipseのコード入力時の、行コ...
-
文字列の切り出し
-
バッチで当日日付で作成される...
-
HTMLソースをコピーするブック...
-
do-while文について
-
Debug版とRelease版で結果が変わる
-
VBA 最終行・最終列コピー範囲...
-
amazonの注文履歴の書名が数字...
-
シートに張り付けたボタンがシ...
-
PC操作の事で教えてください
-
Excelでコピーしたセル(テキス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
C++言語で、構造体のコピーは可...
-
マウントしたディスクにcpで、...
-
Ctrl + Cなど複数の入力キー...
-
Eclipseのコード入力時の、行コ...
-
DataTableに入っているデータを...
-
Activesheet.Pasteで困っています
-
Listviewに表示された文字のコ...
-
一行おきに貼り付ける 可能でし...
-
arduino unoからデータを読み出...
-
【UWSC】WEBページ内コピーした...
-
jakarta poiを使用し、EXCELの...
-
文字列の切り出し
-
Debug版とRelease版で結果が変わる
-
シートに張り付けたボタンがシ...
-
Excelでコピーしたセル(テキス...
-
バッチで当日日付で作成される...
-
VBScript でサブフォルダも含め...
-
エクセルVBA 実行時エラー'...
-
CStringArray[2]のコピー
おすすめ情報