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

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

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

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

Q&A

解決済

1回答

1592閲覧

【C#】文法について

testsome

総合スコア20

C#

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

0グッド

0クリップ

投稿2017/08/02 22:36

線形探索の番兵法で、配列の中から特定の数値があるか探索するプログラムを見つけたのですが、文法的によく分からないところがあります。

return i == n ? -1 : i; と書いてあるのですが、これってどういう意味なのでしょうか。
分かりましたら教えてください。

C#

1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6 7namespace ConsoleApplication2 8{ 9 class Program 10 { 11 static int seqSearchSen(int[] a, int n, int key) 12 { 13 int i = 0; 14 15 a[n] = key; 16 17 while (true) 18 { 19 if(a[i] == key) 20 break; 21 i++; 22 } 23 return i == n ? -1 : i; 24 } 25 26 public static void Main(string[] args) 27 { 28 Console.Write("要素数:"); 29 int num = int.Parse(Console.ReadLine()); 30 int[] x = new int [num + 1]; 31 32 for(int i = 0; i < num; i++) 33 { 34 Console.Write("x[" + i + "]:"); 35 x[i] = int.Parse(Console.ReadLine()); 36 } 37 38 Console.Write("探す値:"); 39 int ky = int.Parse(Console.ReadLine()); 40 41 int idx = seqSearchSen(x, num, ky); 42 43 if (idx == -1) 44 Console.WriteLine("その値の要素は存在しません。"); 45 else 46 Console.WriteLine("その値はx[" + idx + "]にあります。"); 47 } 48 } 49}

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

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

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

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

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

guest

回答1

0

ベストアンサー

回答:
三項演算子。if文のようなイメージで。1行分の場合はif文より簡単に記載できるが、
あまり多用すると可読性が下がる。
条件 ? 条件が真の場合 : 条件が偽の場合;

c#

1// 例) 2int count = 0; 3string value = count == 1 ? "カウントは1です" : "カウントは1ではありません"; 4// count が 1 ではないので、valueには "カウントは1ではありません" 5 6 7// 複合も可。但し、言語によって若干解釈が変わる(javascript)など 8// 複合するときは、可読性下がるのであまり利用しない。 9string data = count == 1 ? "a" : count == 2 ? "b" : "c";

捕捉:
詳しくは三項演算子で検索してください。

投稿2017/08/02 22:52

kanimaru

総合スコア1013

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

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

testsome

2017/08/02 23:02

回答ありがとうございます。三項演算子は初めて聞きました。調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問