前提・実現したいこと
C#でwhile文を使って「1 + 2 + 3 + ・・・」と足していき、合計値が「500」を超えたら
break文でループを抜けるプログラムのソースコードを教えてください。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
C#
ソースコード
using System;
試したこと
using System;
class sum
{
public static void Main()
{
while(sum >= 500)
{
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
while 文は条件式が true に評価される間ループする構文です。
例えば次のループは強制終了されるまでずっと続き、延々と「Hello World!」と表示されます。
C#
1while (true) 2{ 3 Console.WrietLine("Hello World!"); 4}
また次のループは一回も実行されませんので何も表示されません。
C#
1while (false) 2{ 3 Console.WrietLine("Hello World!"); 4}
break 文は while ループを終了するのに使います。
次のループは一度だけ実行され、一回だけ「Hello World!」と表示されます。
C#
1while (true) 2{ 3 Console.WrietLine("Hello World!"); 4 break; 5}
次の演算子は true または false を返します。
==
!=
>
>=
<
<=
例えば 1 == 1
や 2 > 1
は true と評価され、3 < 5
は false と評価されます。
演算子の意味については「C# 演算子」で検索して自分で調べてください。
次のループは強制終了されるまでずっと続きます。
C#
1while (1 == 1) 2{ 3 Console.WrietLine("Hello World!"); 4}
質問のプログラムを作るには、そのほか if
文と「数値の変数への代入」および「数値同士の加算」が必要です。
逆に言えばそれだけでできます。
とりあえずこの三つと演算子について調べ、どのように使うのかここまでの回答を手本にレポートを書いてください。
ただリンクを貼ったり説明文をコピペするのではなく、まず自分で読んで理解し、理解できたこととできないことを明確にして理解したところは解説し、理解できないところは質問してください。
ちなみに、手を抜いたら怒られると思ってください。
投稿2018/09/24 04:11
総合スコア28662
0
「コードをください・デバッグしてください等の丸投げの質問」の項
というteratailの方針に反していますので回答はつかずにマイナス評価だけがつきます
プログラミングは暗記で何とかなるものではなく自分で考えて組み立てるものです
学校の課題か何かわかりませんが、ソースコードを他の人から貰ったところで全く役に立ちません
自分で考えることを放棄するのならプログラミングを自分で行うのもあきらめて誰かに依頼(当然有料)する仕事についてください
投稿2018/09/24 03:59
総合スコア1348
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
じゃーそういう時は数学を勉強しよ~う!
ちなみに今回の場合じゃ数列だと思うんで、高1の範囲ですね。
もしまだ習っていなければ、こちらなんてどうでしょう。
個人的にわかりやすいのをチョイスしたつもりです。
等差数列
等比数列
階差数列
おそらく数列はプログラミングにおいてとてもよく使うと思います。
突然ですがここで数学の脅威を知る例を述べたいと思います。こんな例があります。
内容はCPのaとbがじゃんけんをする様子です。ここではaを味方とします。
何も工夫しない場合
C#
1//1=グー,2=チョキ,3=パー, 2int a=random.Range(1,4),b=random.Range(1,4);//1以上4未満の乱数 3 4if (a==1) //aがグーの場合 5{ 6 if(b==1)//bがグーの場合 7 { 8 //引き分け 9 } 10 if(b==2)//bがチョキの場合 11 { 12 //勝ち 13 } 14 if(b==3)//bがパーの場合 15 { 16 //負け 17 } 18} 19if(a==2)//aがチョキの場合 20{ 21 if(b==1)//bがグーの場合 22 { 23 //負け 24 } 25 if(b==2)//bがチョキの場合 26 { 27 //引き分け 28 } 29 if(b==3)//bがパーの場合 30 { 31 //勝ち 32 } 33} 34if(a==3)//aがパーの場合 35{ 36 if(b==1)//bがグーの場合 37 { 38 //勝ち 39 } 40 if(b==2)//bがチョキの場合 41 { 42 //負け 43 } 44 if(b==3)//bがパーの場合 45 { 46 //引き分け 47 } 48}
長すぎて無理です。
勝ち負け引き分けの処理はそれぞれメソッド作ったとしても、
if文が異常に多すぎです。読むほうもだるいと思います。デバッグも時間がかかります。
続いて
数学の力を使った場合
C#
1int a=random.Range(1,4),b=random.Range(1,4); 2int s;//sは勝敗のイニシャルとして 3 4s = (a-b+3)%3;//くらえぇっ!数学の魔法っ!! 5 6switch(s) 7{ 8 case 0: 9 //引き分け 10 break; 11 case 1: 12 //負け 13 break; 14 case 2: 15 //勝ち 16 break; 17}
これだけです。比べ物にならないほど短くなりました。
ちなみに%は数学でいう合同式の範囲ですmod関数
こんなノリで
プログラミングにおいて数式を扱うときは関数や演算子だけにこだわりすぎるよりも、数学的要素を取り入れることで、発想がまとまりやすくなることがあるかもしれません。
これだけは言っておきたくなったので書いたのみです。勉強してくれればいいです。
投稿2018/09/26 00:40
編集2018/09/26 00:47総合スコア28
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/24 06:39
2018/09/24 06:43