Java(≠JavaScript)で、while文を使って等差数列(初項1、等差1)の和を出すプログラムを書きたい(Eclipse使ってる)んだけど、どう書いてもエラーになる。。。わからん。。。
というアレで、大学の情報の授業の課題がどうしても出来なかったのだけど(ヽ(°▽、°)ノエヘヘヘヘ)、いろいろな人に聞いてなんとか出来た!メモ的に記録!
問い:for文もしくはwhile文を用いて、1から入力された値までの和を出力するプログラムを書きましょう。
実行結果:=====値を入力してください。101から10までの和は、55です。=====
最初に僕が書いたコードはこんな感じ:
=====import java.io.*;public class Sum_n {/*** @param args*/public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader (new InputStreamReader (System.in));System.out.println("値を入力してください。");String str1 = br.readLine();int n = Integer.parseInt(str1);while(i<=n){int total = 0;int total = total + i;i=i++;}System.out.println("1から" + n + "までの和は、" + total + "です。");}}=====
これ、変数totalをループの中で宣言・初期化しているし、変数iに至っては宣言もしていなければ初期化もしていない(と先輩(@a_suenamiさん)に教えていただいた。
そこで@a_suenami先輩に直していただいたコード:
=====import java.io.*;public class Sum_n {/*** @param args*/public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader (new InputStreamReader (System.in));System.out.println("値を入力してください。");String str1 = br.readLine();int n = Integer.parseInt(str1);int i = 1;int total = 0;while(i<=n){total = total + i;i++;}System.out.println("1から" + n + "までの和は、" + total + "です。");}}=====
というわけで、iとtotalをループの外で宣言・初期化して、なんとかばっちり動きました。よかったー。
0 件のコメント:
コメントを投稿