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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

4541閲覧

java for文の最後の計算結果のみを出したい。

gm71

総合スコア3

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/06/16 13:19

編集2021/06/16 13:57

Java

1public class Main { 2public static void main(String[] args) { 3 4int num =1; 5System.out.println(num); 6for(int i=0; i<10; i++){ 7 num *= 2; 8} 9 System.out.println(num); 10 11} 12} 13

###結果
1
1024

計算結果(1024)だけを出すにはどうしたら良いのか
教えて頂けますと幸いです。

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

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

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

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

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

m.ts10806

2021/06/16 13:21

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 このコード動かないですよね。 未定義の変数いきなり使ってます。
gm71

2021/06/16 13:41

コードの編集をしてみました! 今後の質問方法はこれで問題ないでしょうか?
BeatStar

2021/06/16 13:47

いや、だから、コードは"<code>"または"<コード>"のボタンを押して出てくるやつに書きましょう。 そうしないとインデントが無視されて読みづらいです。
gm71

2021/06/16 13:56

ご指摘ありがとうございます! 再度、編集してみました! これで、どうでしょうか?
BeatStar

2021/06/16 13:59

OKです。 でも、それでもインデントが無いので読みづらいです。 自分だけ読んで、しかも一回きりなら個人の自由ですが、コードレビューなり、 質問なりをするなら、『他人が読むことを意識』しましょう。
gm71

2021/06/16 14:06

ありがとうございます! インデントについては、まだ勉強不足でした!申し訳ありません。 今後、教えて頂きました「他人が読むことを意識」は忘れずにしておきます!
guest

回答2

0

まず、『コーディング規約』等を守りましょう。

たとえば、コーディング規約には含まれないかもしれませんが、インデントを使うです。

たとえば、質問にある

Java

1public class Main { 2public static void main(String[] args) { 3 4int num =1; 5System.out.println(num); 6for(int i=0; i<10; i++){ 7 num *= 2; 8} 9 System.out.println(num); 10 11} 12}

は、

Java

1public class Main { 2 public static void main(String[] args) { 3 int num =1; 4 System.out.println(num); 5 for(int i=0; i<10; i++){ 6 num *= 2; 7 } 8 System.out.println(num); 9 } 10}

のように、インデント(Tabキーか半角スペースでやるやつ) を入れましょう。

そうしないと、入れ子の入れ子とかのときに相当読みづらくなります。

1人で開発する場合でも、一か月後の自分は赤の他人です。

一か月前の自分が書いたコードを読むと、「あれ? なんでこんな風に書いたんだっけ……」とわからなくなることもしばしば。

ましてや複数人で開発したり、コードレビューしてもらったり、質問したりする場合は、
赤の他人が読むわけですから、なおさらです。

次に、『プログラミングは「こう書けばいい」ではなく』、

プログラムは魔法でもなんでもなく、人間が現実世界でやっていることを逐一指示されながら処理しているだけの代物である』です。

よって、『現実世界でならどうするか』です。

今回の場合、

[依頼] 2^10 (2の10乗)を計算し、その結果を言ってくれ。

みたいなものです。

更に、『他人のコードを読む場合は、一行レベルでなにをしているかを考えながら読む』です。

たとえばコメント文として書くとか。

自分のコードでも同じです。

たとえば、

Java

1public class Main { 2 public static void main(String[] args) { 3 // 変数numを初期値 1として宣言 4 int num =1; 5 // numの値を出力する 6 System.out.println(num); 7 // iの初期値: 0, iが10以下の間, インクリメントしながら処理(= 10回ループ ) 8 for(int i=0; i<10; i++){ 9 // 現在のnumを2倍にする 10 num *= 2; 11 } 12 // numの値を出力する 13 System.out.println(num); 14 } 15}

と言う風に。

そして、これを日本語なり英語なり韓国語なりスペイン語なりの言語、つまり自分が読み書きできる言語で書き下す。

Java

11. 変数num を初期値 1 として宣言 22. numの値を出力する 33. iの初期値 = 0 で、iが10以下の間、インクリメントしながら処理(= 10回ループ) 4 3.1. 現在のnumを2倍にする 54. numの値を出力する

そして、それを現実世界で、手作業でやってみる。

脳内でもいいです。とにかくロジックを試す。

そうすると、『なぜ(2)で出力しているのだろうか』と気になりませんか?

それが原因じゃないかなと。


[追記0]

後、質問文を修正するのは良いですが、元のコードは残しておきましょう。

後から見始める人からすると意味が分からなくなることが多いからです。

頑張ってみてください。(^O^)/

投稿2021/06/16 14:29

BeatStar

総合スコア4958

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

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

gm71

2021/06/16 14:53

こんなにご丁寧にありがとうございます! また、追記でのアドバイスもありがとうございます! 「一行レベルでなにをしているかを考えながら読む」について、自分で日本語での説明がまだまだ出来ないなと気づき、理解が足りてないと感じました。 もっと勉強していきます!
guest

0

ベストアンサー

forの外でprint

投稿2021/06/16 13:22

m.ts10806

総合スコア80850

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

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

gm71

2021/06/16 13:43

質問方法の訂正などのご指摘ありがとうございます! また、ご回答もありがとうございました! 早速やってみたのですが、今度は 1 1024 と表示になりました。 1を無くすにはどこが間違いなのか追加で教えて頂けますと幸いです。
BeatStar

2021/06/16 13:46

横からすみません。 >> 1を無くすにはどこが間違いなのか それは誰にもわかりませんよ。そもそもコードすらないし。(質問のコードを編集しているはずなので)
gm71

2021/06/16 14:09

BeatStarさん 質問方法につきまして、ご指摘ありがとうございました。 再度、コードを訂正したのを載せてみたのですが、やはり 1 1024 と出てしまうのですが、何かアドバイスを頂けませんでしょうか。 宜しくお願いいたします。
hoshi-takanori

2021/06/16 20:43

int num =1; の直後に System.out.println(num); してるので 1 が表示されます。
m.ts10806

2021/06/16 21:20

あれ。自分が書いたコード全然理解してなかったのか・・
m.ts10806

2021/06/16 21:21

悪いこと言わないのでEclipseとかIDE使ってください。 そしてコードフォーマットと補完とデバッグを覚えてください。 コード打つより先に。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問