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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

3回答

782閲覧

[Unity]if文を簡単にしたい

Yuki_Unity

総合スコア129

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

1グッド

0クリップ

投稿2018/06/02 09:06

編集2018/06/02 09:36

c#

1public Text Text; 2int x = UnityEngine.Random.Range(0, 31); 3 if(x == 0) 4 { 5 Text.text = "5"; 6 } 7 if(x == 1) 8 { 9 Text.text = "64"; 10 } 11 if(x == 2) 12 { 13 Text.text = "ytty5r4"; 14 } 15 if(x == 3) 16 { 17 Text.text = "4trrd"; 18 } 19 if(x == 4) 20 { 21 Text.text = "54etre"; 22 } 23 24 /*続く...*/

それぞれの処理は不規則です。
このようにそれぞれ違う処理をしたいのですが、
31個ならまだしも、1000とか10000とかになったときにいちいち
if(){}if(){}if(){}
と書くのは大変なので、まとめて書きたいのですが、なにかいい方法ありますか?

lamp👍を押しています

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

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

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

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

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

keroxp

2018/06/02 09:17

そもそもなぜ31通りの分岐が必要なのかの理由を併記していただけますか? 書き方はいくつかあると思うのですが、本当にランダムで独立した31通りの処理を書くのであればこういった書き方になると思います。しかし、31ならまだしも質問にあるとおり1000通りの独立した処理を書くというのは普通は考えられません。ですので実際に実現したいことを教えてください。
Yuki_Unity

2018/06/02 09:31

わかりました。修正します。
guest

回答3

0

「処理n」を関数などにまとめることができないか検討して下さい。

投稿2018/06/02 09:14

hichon

総合スコア5737

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

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

0

ベストアンサー

C#なら、switch文というのが使えます

C#

1 switch(x){ 2 case 0: 3 // 0の処理 4 break; 5 case 1: 6 // 1の処理 7 break; 8 case 2: 9 // 2の処理 10 break; 11 12 } 13

まあ、他にもいろいろ方法がありますが

投稿2018/06/02 09:12

y_waiwai

総合スコア87774

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

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

Yuki_Unity

2018/06/02 09:49

Switchの存在を忘れていました... 回答有り難うございます!
guest

0

連続的な数によって文字列を変えたいだけならば配列でいいのでは?

Csharp

1string[] tbl = {"5", "64", "ytty5r4", "4trrd", "54etre", /* ... */}; 2public Text Text; 3int x = UnityEngine.Random.Range(0, 31); 4if(x < tbl.Length && x >= 0) 5 Text.text = tbl[x]; 6else 7 /* 範囲外なので例外飛ばすなり */

投稿2018/06/02 10:14

編集2018/06/02 10:14
asm

総合スコア15147

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問