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

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

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

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

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

1256閲覧

【GO言語】for文の結果が想定と違う

benkyo_golang

総合スコア5

for

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

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/08/04 06:14

編集2021/08/04 07:39

前提・実現したいこと

1~任意の数までを作成したいのですが、最後に0がついてしまいます。
ex)
やりたいこと → 1234
現状     → 12340

もっといい方法があるかと思いますが、今回はなぜこのような結果になってしまうのかを教えていただきたいです。
もしかしたら初歩的な見落としかもしれませんが、よろしくお願い致します。

for文のi++ によって、i=5になったらfor文を抜け出す認識なので、
sum=1234と表示されるかと思ったのですが、、、

実行結果

sumtmp 1
itmp 1
sumtmp 12
itmp 2
sumtmp 123
itmp 3
sumtmp 1234
itmp 4
sumresult 12340

該当のソースコード

var sum int
for i := 1; i < 5; i ++ {
sum += i
fmt.Printf("sumtmp %v \n", sum)
sum *= 10
fmt.Printf("itmp %v \n", i)
}
fmt.Printf("sumresult %v \n", sum)
}

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

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

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

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

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

guest

回答1

0

ベストアンサー

最後は*10で終わってますよね。
コードを追いかけていくとわかるかと

単純に、*=10と+=iの順番が逆ですね

投稿2021/08/04 06:19

編集2021/08/04 06:21
y_waiwai

総合スコア88042

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

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

benkyo_golang

2021/08/04 07:43

冷静に考えてみたらそうですね、、、 順番を逆にすればうまくいきそうです。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問