C++ 通过分支语句编写循环与普通循环之间有什么区别
通过分支跳转语句编写循环和正常循环之间有什么区别 i、 例如,eC++ 通过分支语句编写循环与普通循环之间有什么区别,c++,loops,C++,Loops,通过分支跳转语句编写循环和正常循环之间有什么区别 i、 例如,e main() { int i=0; while(i<9) { //do something i++; } main() { int i=0; 而(i的区别在于第一个更容易阅读,这就是为什么通常避免使用goto。同样,正如语义中指出的,它们也不一样 性能应该大致相同,因为CPU必须进行跳转
main()
{
int i=0;
while(i<9)
{
//do something
i++;
}
main()
{
int i=0;
而(i的区别在于第一个更容易阅读,这就是为什么通常避免使用goto
。同样,正如语义中指出的,它们也不一样
性能应该大致相同,因为CPU必须进行跳转才能实现这两种功能。当然,使用更高级别的意图描述(如第一种情况),编译器能够优化某些内容的可能性会增加
也许在这种特殊情况下不是这样,但一般来说,更高层次的描述您想要做的事情是首选的,然后循环结构比goto
更好。这两个循环并不等价:第二个循环类似于do
/while
循环,而不是while
循环:
main() {
int i=0;
do {
//do something
i++;
} while(i<9);
}
main(){
int i=0;
做{
//做点什么
i++;
}当(i在这种情况下,编译器应该产生一个等价的输出。但我认为这两个示例并不等价-awhile
首先检查条件,然后决定何时执行主体。使用goto
的示例首先执行主体,然后检查条件-它的行为更像do while
语句
在这种情况下,您不应该使用goto
,因为它会降低可读性。goto
s仅在有限数量的场景中有效。不同之处在于,如果使用第二个,您将不会在此处分支,因为代码未被使用。用于查看汇编程序代码。您的标签代码与do相当op,不是暂时的循环。取决于编译器。而且,goto
是一种诅咒。
main() {
int i=0;
do {
//do something
i++;
} while(i<9);
}