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

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

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

COUNT は、広く使用されているSQLの関数です。COUNT関数は、行数、もしくは配列のエンティティの数をカウントします。

C#

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

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

4回答

18109閲覧

c# while文をつかって繰り返しの合計を計算する場合

hehehe

総合スコア7

COUNT

COUNT は、広く使用されているSQLの関数です。COUNT関数は、行数、もしくは配列のエンティティの数をカウントします。

C#

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

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2015/07/19 10:47

プログラミング初心者です。Unityでc#が必要なため勉強しております。
アホな質問で大変申し訳ないのです。
while文を使って繰り返しで合計を計算する場合、下記のサンプルコードが参考書にのっています。
while(count <= max) までは理解できるのですが、

total = total + count;
count = count + 1;
の部分がどのようなことを意味しているのかわかりません。

total=0でcount=0ということは、
total = total + count も常に0ではないでしょうか。
count = count + 1は、countが0ならば常に1ではないでしょうか?

<サンプルコード>
void Start(){
int max = 10;
int total = 0;
int count = 0;
while (count <= max){
total = total + count;
count = count + 1;
}
GetComponent<GUIText>().text = "合計は、" + t;
}

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

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

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

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

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

guest

回答4

0

ベストアンサー

C#

1total = total + count;

プログラミング初心者ということで、代入演算子の左右に同じ変数(total)が出てきたことで、混乱されたかもしれませんが、プログラミングにおいてはとても一般的な記述です。私も最初は「はっ?」ってなりました。
これはtotal + countの結果を新しくtotalに入れるという意味です。
質問者様のおっしゃる通り、0 + 0を代入するのですから、当然totalは0です。ただしそれはループ1回目だけです。

C#

1count = count + 1;

これも上と同じくcount + 1の結果をcountに代入します。0 + 1なのでcount1になりました。

whileの条件count <= max1 <= 10、満たされるので次のループへ。

記述内容は最初のループと変わらずtotal = total + count;ですが、countは最初のループで1になっているので、total + count0 + 1です。結果の1totalに代入されます。

count = count + 1;これも上記と同じく、記述内容は変わりません。しかしこのときcount1なので、count + 11 + 12になります。

このように、ループ1回ごとにcountが1づつ増えていきます。
上記をwhileの条件が満たされなくなるまで続けると、count11に、total55になります。

質問とは関係無いことですが、

C#

1total = total + count;

このようにA = A + Bというのはプログラミングにおいてはよくあることで、以下のような別の書き方もあります。意味は同じです。

C#

1total += count;

C#

1count = count + 1;

このように、1づつ増やしていくという処理は「インクリメント」と呼ばれており、これにも別の書き方があります。

C#

1++count; // 前置 2count++; // 後置

前置と後置では少し処理順序が変わるのですが、単体で使う分には同じです。

上記を利用すると、

C#

1total = total + count; 2count = count + 1;

この記述を1行で書くことができます。

C#

1total += count++;

とは言っても、「やろうと思えばできる」というだけで、この書き方はあまり見かけませんが・・・
大抵の場合は

C#

1total += count; 2count++;

です。

投稿2015/07/19 11:49

shiolier

総合スコア1156

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

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

hehehe

2015/07/19 11:58

大変分かりやすい説明をして頂き誠にありがとうございました!調べようにもどうしらべていいのか分からず、困っていたところだったので、本当に助かりました!
guest

0

count = count + 1は、countが0ならば常に1ではないでしょうか?

int count = 0;
このコードは「count」という名前の変数を作成して、初期値に0を入れています。
0で固定したわけではないので、その後 count=5; のようにすれば5に変ります。

while (count <= max){
//..........
}
これはcountの値がmax(10)未満の間、何回でも中の処理を繰り返します。
count = count + 1; を何度も繰り返すと
int count = 0; //初めcountは0
while
count = count + 1; // 0+1でcountが1に
count = count + 1; // 1+1でcountが2に
......
11回繰り返すとcountが11になるので、(count <= max)の条件に合わなくなりwhileを抜けます。

投稿2015/07/19 11:41

編集2015/07/19 11:42
hirohiro

総合スコア2068

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

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

hirohiro

2015/07/19 11:47

count = count + 1; 左辺の入れ物に、countの値と1を加算した結果を代入する。という意味で 左辺は入れ物のままですが、右辺では中身が展開されます。
hehehe

2015/07/19 12:00

こんな初歩的な質問にご丁寧に説明して頂き本当にありがとうございます! 困っていたので本当に助かりました。ありがとうございました!!
guest

0

ループ1回目で
totalは0 countは1 になります。
ループ2回目で
totalは1 countは2 になります。
ループ3回目で
totalは3 countは3 になります。
以下、条件式はcountが10になるまで繰り返され、最終的にcountは11、totalは55になります。

投稿2015/07/19 10:58

編集2015/07/19 11:57
rik

総合スコア1151

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

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

hehehe

2015/07/19 12:01

初歩的な質問にも関わらず、ありがとうございました!大変助かりました!
guest

0

= は左辺に右辺の結果を代入するという意味です。
whileの中で、count = count + 1としているので、1ずつ増えていきます。

投稿2015/07/19 10:52

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

hehehe

2015/07/19 12:02

初歩的な質問にも関わらず、ありがとうございました!理解できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問