流程控制
判断
if···elsif···else···
OC:
NSInteger day = 5;
if (day==0) {
NSLog(@"星期日");
}else if (day==6){
NSLog(@"星期六");
}else {
NSLog(@"工作日");
}
ruby:
day = 5
if day==0
puts "星期日"
elsif day==6
puts "星期六"
else
puts "工作日"
end
三目运算符
OC:
NSInteger day = 5;
NSString * result = (day==6 || day==0) ? @"休息日" : @"工作日";
NSLog(@"%@", result);
ruby:
day = 5;
result = (day==6 || day==0) ? "休息日" : "工作日";
puts result
case ... when ...
OC:
NSInteger day=5;
switch (day) {
case 1:
NSLog(@"工作日-星期一");
break;
case 2:
NSLog(@"工作日-星期二");
break;
case 3:
NSLog(@"工作日-星期三");
break;
case 4:
NSLog(@"工作日-星期四");
break;
case 5:
NSLog(@"工作日-星期五");
break;
case 6:
NSLog(@"休息日-星期六");
break;
case 0:
NSLog(@"休息日-星期日");
break;
default:
NSLog(@"未知");
}
ruby:
day = 5
case day
when 1..5
puts "工作日"
when 0
puts "星期日"
when 6
puts "星期六"
else
puts "未知"
end
循环
while
OC:
NSInteger counter = 0;
while (counter < 5) {
NSLog(@"hi, %ld", counter);
counter += 1;
}
ruby:
counter = 0
while counter < 5
puts "hi, #{counter}"
counter += 1
end
for in
OC:
NSMutableArray * thoughts = @[@"儒家", @"道家", @"墨家", @"法家"].mutableCopy;
for (NSString * thought in thoughts) {
NSLog(@"%@", thought);
}
ruby:
thoughts = ["儒家", "道家", "墨家", "法家"]
for thought in thoughts
puts thought
end
upto & downto
OC:
for (NSInteger i = 1; i <= 5 ; i++) {
NSLog(@"hi, %ld", i);
}
/*
hi, 1
hi, 2
hi, 3
hi, 4
hi, 5
*/
for (NSInteger i = 5; i >= 1 ; i--) {
NSLog(@"hi, %ld", i);
}
/*
hi, 5
hi, 4
hi, 3
hi, 2
hi, 1
*/
ruby:
1.upto(5) do |i|
puts "hi, #{i}"
end
=begin
hi, 1
hi, 2
hi, 3
hi, 4
hi, 5
=end
5.downto(1) do |i|
puts "hi, #{i}"
end
=begin
hi, 5
hi, 4
hi, 3
hi, 2
hi, 1
=end
iteration
OC:
NSMutableArray * thoughts = @[@"儒家", @"道家", @"墨家", @"法家"].mutableCopy;
[thoughts enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSString * thought = obj;
NSLog(@"%@", thought);
}];
ruby:
thoughts = ["儒家", "道家", "墨家", "法家"]
thoughts.each do |thought|
puts thought
end
参考资料:
railsbook
- 持续更新。
- 若有更好的资料,感谢交流。
- 若有错误的内容,感谢斧正。
网友评论