Ruby
条件演算子(式が複雑な場合)
「VisualC++2013パーフェクトマスター」で次のコードと出会う。
#include <iostream>
using namespace std;
struct dt1 {
int a;
double b;
};
int main()
{
int a = 1, b;
if (a < 5)
b = 10;
else
b = 50;
b = a<5 ? 10 : 50;
if (a < 10)
b = 1;
else if (a < 100)
b = 2;
else if (a < 500)
b = 3;
else
b = 4;
b = (a < 10) ? 1 : (a < 100) ? 2 : (a < 500) ? 1 : 4;
getchar();
return 0;
}
要するに、赤の部分が条件演算子を使って青の部分のように
1行で書けるということなのだが、
Rubyでも同じようにしてみる。
a = 3
if a < 10
b = 1
elsif a < 100
b = 2
elsif a < 500
b = 3
else
b = 4
end
puts b
a = 33
if a < 10
b = 1
elsif a < 100
b = 2
elsif a < 500
b = 3
else
b = 4
end
puts b
a = 333
if a < 10
b = 1
elsif a < 100
b = 2
elsif a < 500
b = 3
else
b = 4
end
puts b
a = 3333
if a < 10
b = 1
elsif a < 100
b = 2
elsif a < 500
b = 3
else
b = 4
end
puts b
a = 3
puts b = (a < 10)? 1 : (a < 100)? 2 :(a < 500)? 3 : 4
a = 33
puts b = (a < 10)? 1 : (a < 100)? 2 :(a < 500)? 3 : 4
a = 333
puts b = (a < 10)? 1 : (a < 100)? 2 :(a < 500)? 3 : 4
a = 3333
puts b = (a < 10)? 1 : (a < 100)? 2 :(a < 500)? 3 : 4
出力結果
1
2
3
4
1
2
3
4
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。