如何用轻小说的方式学C (四) 旋转吧雪月花(2)
}
for(item : group) {
// todo
}
“第一个for里面有三个表达式,之间用分号隔开;第一个表达式是初始化,第二个表达式是每次循环开始前都要判定的条件表达式,第三个则是每次循环结束以后执行的表达式。”
“这里的配色真不是在映射什么幼儿园吗?”
“律师函警告!”
“我举个简单的例子吧,比如求1到100的和”
“嗯,5050.”
“...那1到987654321的和呢?”
“487730529388812681”
“...你赢了。”
int i,sum;
for(i=1,sum=0;i<=100;i=i 1) {
sum=sum i;
}
“初始化,给i赋值为1,sum赋值为0,然后只要i<=100就执行这个循环,每次会给i递增1”
(似懂非懂)
“那么刹那你用while写一个吧。”
(手放在键盘上,迟迟没有按下第一个键。)
“想一想整个程序的流程。第一步干啥?”
“初始化。”
“循环执行的条件呢?”
“小于等于100?”
“下个循环开始前要干嘛?”
“递增1?”
int i,sum;
i=1,sum=0;
while(i<=100) {
sum=sum i;
i=i 1;
}
“同理,显然有个通用的转换方式对应上面的for语句块:”
initialization;
while(expression) {
// todo
step;
}
“久远前辈,那下面那个带冒号的语句是什么呢?”
“这个等迟一点讲数组和容器的时候再说吧。”
“那么,现在进入黑魔法课程。”
“黑...黑魔法?!”
“对,这可是对程序媛而言的不可饶恕咒——goto语句!”
“呜哇!”
“传说中,伏地魔在他的魔法里面使用了2147483647条goto语句以后突然暴毙身亡——”
“等等这个故事好像哪里有点不对?”
label1:
someCodes();
goto label1;
“以上就是大致的语法。在同一个函数内先随便取一个标签名,然后在其他地方用goto就可以了。goto语句可以往回跳也可以往后跳,但是不能跨函数跳。跨函数的话要用其他技术,这个以后再说。”
“看上去挺正常的啊?为什么会是不可饶恕咒呢?”
“那么刹那,请您以后无论怎样的循环都只使用goto试一试。”
“呜哇——我试试吧。”
“久远前辈啊,这代码也还好吧,用了goto以后还挺好的啊?”