質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1234閲覧

C# 配列 for文について

big_D

総合スコア7

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/01/31 11:07

編集2021/01/31 11:09

現在、PaizaラーニングC#入門編を進めており、
そこで出た演習問題で疑問に感じご質問させていただきます。

出題された問題は下記の通りです。
numbers配列に数値が格納されています。 この全要素の合計値を計算して出力してください。
期待する出力値:270

コードは下記のとおりです。

C#

1using System; 2public class Program{ 3 public static void Main(){ 4 int[] numbers = {12, 34, 56, 78, 90}; 5 int sum = 0; 6 for (int i = 0; i < numbers.Length; i++) { 7 // ここに、合計を計算するコードを記述する 8 sum += numbers[i]; 9 } 10 Console.WriteLine(sum); 11 } 12} 13

今回の質問内容としては、下記のコードの違いについてです。

C#

1sum += numbers[i]; と sum = numbers[i] + numbers[i];

私の解釈としては、sum = numbers[i] + numbers[i]; こちらのコードだと、
numbers[i]の値には90しか入っていないという考えなのですが、
+=numbers[i]; との違い、どういった経緯で値が代入され合計値が出力されているのか、
教えていただけないでしょうか。

長文の質問になってしまい申し訳ありません。
お答えいただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

分解すると以下になります。

sum += numbers[i]; sum = sum + numbers[i];

そのためもうひとつの式とは結果が異なります。

投稿2021/01/31 11:10

WhiteTempest

総合スコア404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

WhiteTempest

2021/01/31 11:21

ちょっとご質問に答えきれているか不安だったので補足しますね。 sum = numbers[i] + numbers[i]; の場合、1回目のループで 12+12で24がsumに入ります。 2回目のループでは、 34+34の64がsumに入ります。 毎回"上書き"するので、最後に残るのは 最後の90+90がsumに残り、 180が結果となります。 sum += numbers[i]; の場合、1回目のループでは、 0(sumの値) + 12がsumに入ります。 2回目のループでは、 12(sumの値) + 34がsumに入ります ループ毎に、対象の配列の値が足されていくイメージですね。 なので、最終的に配列内のすべての値が 足し合わされたものが結果となります。
big_D

2021/02/02 13:10

ご返信いただきありがとうございます。 とても分かりやすい回答で理解することが出来ました。 += の計算を理解できてなかったみたいで、今回理解できてよかったです。 ありがとうございました。
WhiteTempest

2021/02/02 14:40

ご理解いただけて、良かったです。 +=や-=などよく使うので、根本理解に努めていただければと思います。 勉強、頑張ってください!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問