我是编程Objective-C和编程的新手,所以如果这是一个非常明显的问题,请原谅我:
我想知道Objective-C是否逐行运行代码。我的意思是,如果它在移动到另一条线之前处理一条线,或者它只是运行下一条线而不管前一条线是否完成。
例如,
int difference = number1 - number2;
if (difference < 0) {
difference = difference + 10;
}
result = difference;
说number1 = 3
和number2 = 7
。当我运行这段代码时,它会一行一行地运行并在第5行之前运行if块并给我result = 6
,或者它会同时开始运行if块和第5行并给我{{1 }}?
提前致谢!
编辑:由于Obj-C怪癖,将模数更改为加法。
答案 0 :(得分:7)
就你的想法而言,你可以假设它是逐行运行的。
事实上,编译器可能会将代码置于更有效的顺序中(即确保分区不会太靠近,因为这可能会使事情变得缓慢)。但是,即使编译器重新排序,也可以确保在需要之前计算结果。当您以完全优化的方式(发布模式)构建代码时,如果您对其进行调试,您可以看到代码实际上已经重新排序(调试器会在您不希望的情况下跳转)。但是,只要考虑你的代码就可以安全地假设它按你编写的顺序运行它。
答案 1 :(得分:0)
如果您不熟悉编程,那么您在学习之初就会遇到的所有编程语言都会按顺序执行语句。这意味着下一个只在前一个结束后才会发生。但是,像Objective C这样的语言不是面向行的,重要的不是行而是语句,比如以分号结尾的赋值!或者如果声明。