for,whileを使わないでループする
解決済
回答 3
投稿
- 評価
- クリップ 0
- VIEW 1,014

退会済みユーザー
前提・実現したいこと
forとかwhileを使わないでループ文を書くには何を使えばいいでしょうか
iが100になるまで加算していく・・・みたいなプログラムです
発生している問題・エラーメッセージ
該当のソースコード
java
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+7
次のうちのどれかかと。
- do-whileはwhileじゃない!と言い張る
- 再帰的な解き方をする
- 0から100までのIntStreamを作って足す
何を習ったかを思い出して解法を選んでください。
あるいは、数学的な方法で解くのもループを要しないですね。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
checkベストアンサー
0
for,whileを使わないでループする
私が知っているのは再帰ぐらいですがその方法で
1~100までの和を求めるソースを書きたいと思います。
public class Sum {
public static void main(String[] args) {
int answer = sum(100);
System.out.println(answer);
}
private static int sum(int n)
{
if(n <= 0){
return 0;
}
else{
return n + sum(n - 1);
}
}
}
出力結果: 5050
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
Stream をつかってみました。
import java.util.stream.IntStream;
public class Ensyu6_J {
public static void main(String[] args) {
int total = IntStream.iterate(1, e -> e + 1)
.takeWhile(i -> i <= 10)
.sum();
System.out.println(total);
}
}
参考情報
- 従来の for ループに代わる関数型の手法
https://www.ibm.com/developerworks/jp/java/library/j-java8idioms3/index.html
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 90.36%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
maisumakun
2018/04/18 13:18
「なぜ」forとかwhileを使わないで実装したいのでしょうか。
KSwordOfHaste
2018/04/18 13:26
何が質問者さんの課題なのかわからないですよね・・・
退会済みユーザー
2018/04/18 13:31
演習課題の一つなのですが、解答がないのです。
KSwordOfHaste
2018/04/18 13:33
私がいった課題とは「質問者さんに何の知識が足りないか、何をしたくて何が問題になっているか」ということです。質問者さんが出題された課題のことを言っているのではありません。
mts10806
2018/04/18 13:45
演習課題なのであれば今まで学んだ中から必ずヒントがあるはずです。ひとまず書いてみましょうよ。 (あと質問テンプレート部分が多く残ってるので本当に必要な部分だけ残して調整してもらえればと)
mts10806
2018/04/18 13:46
↑質問内容だけでは前提や背景が全く分からないので、開示可能な情報は可能な限り質問に書いておくべきです。
退会済みユーザー
2018/04/18 14:02
すみません、ありがとうございます。課題については回答もいただけましたし、解決もしました。初めての質問だったので書き方が分かっておらず、ご迷惑おかけしました、以後気を付けます
mts10806
2018/04/18 14:06
質問はずっと残るので今後誰かが見る可能性はあります。ベストアンサー選ぶ前にできるところを編集しておいては?
mts10806
2018/04/18 14:07
(質問は質問者さんだけが編集することができます)
2018/04/18 14:30
複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。