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

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

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

3回答

708閲覧

C#のwhile文についてのプログラム

okajun

総合スコア4

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

1グッド

0クリップ

投稿2018/09/24 03:47

前提・実現したいこと

 C#でwhile文を使って「1 + 2 + 3 + ・・・」と足していき、合計値が「500」を超えたら
break文でループを抜けるプログラムのソースコードを教えてください。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

C#
ソースコード
using System;

試したこと

using System;

class sum
{
public static void Main()
{
while(sum >= 500)
{

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

Koopa👍を押しています

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

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

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

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

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

guest

回答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 == 12 > 1 は true と評価され、3 < 5 は false と評価されます。
演算子の意味については「C# 演算子」で検索して自分で調べてください。
次のループは強制終了されるまでずっと続きます。

C#

1while (1 == 1) 2{ 3 Console.WrietLine("Hello World!"); 4}

質問のプログラムを作るには、そのほか if 文と「数値の変数への代入」および「数値同士の加算」が必要です。
逆に言えばそれだけでできます。

とりあえずこの三つと演算子について調べ、どのように使うのかここまでの回答を手本にレポートを書いてください。
ただリンクを貼ったり説明文をコピペするのではなく、まず自分で読んで理解し、理解できたこととできないことを明確にして理解したところは解説し、理解できないところは質問してください。

ちなみに、手を抜いたら怒られると思ってください。

投稿2018/09/24 04:11

Zuishin

総合スコア28662

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

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

okajun

2018/09/24 06:39

丁寧な説明をどうもありがとうございました。自分の力でコードを書きたいと思います。
Zuishin

2018/09/24 06:43

それがいいですね。わからないことを聞くのと一から作業してもらうのとは違うので。
guest

0

  「コードをください・デバッグしてください等の丸投げの質問」の項
というteratailの方針に反していますので回答はつかずにマイナス評価だけがつきます

プログラミングは暗記で何とかなるものではなく自分で考えて組み立てるものです
学校の課題か何かわかりませんが、ソースコードを他の人から貰ったところで全く役に立ちません
自分で考えることを放棄するのならプログラミングを自分で行うのもあきらめて誰かに依頼(当然有料)する仕事についてください

投稿2018/09/24 03:59

len_souko

総合スコア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
Koopa

総合スコア28

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問