C语言循环中减少判断——————【Badboy】

为了让编译器更好地优化循环,应该尽量让循环中减少判断,方法之一是将判断语句整合进表达式。还是这个例子:

  for (int i = 0; i < 1000*10; i++)

  {

  sum += data[i/1000][i%10];

  }

  假如我们需要加一个判断,只有非负整数才需要作求和运算:

  for (int i = 0; i < 1000*10; i++)

  {

  if (data[i/1000][i%10] >= 0)

  sum += data[i/1000][i%10];

  }

  下面将这个判断语句整合进表达式:

  for (int i = 0; i < 1000*10; i++)

  {

  sum += (data[i/1000][i%10] >= 0) * data[i/1000][i%10];

  }

  注意这种将判断语句整合进表达式的方法不一定在任何情况下奏效。如果if条件为真的可能性很大,那么可以考虑这样整合;如果这样整合让逻辑变得很复杂,当然不建议这样做,因为编写简约明了的代码是非常重要的。最好的方法就是实际测试两个版本的性能,然后选取性能更优的。

C语言循环中减少判断——————【Badboy】

时间: 2024-10-13 22:53:10

C语言循环中减少判断——————【Badboy】的相关文章

C语言优化实例:循环中减少判断

为了让编译器更好地优化循环,应该尽量让循环中减少判断,方法之一是将判断语句整合进表达式.还是这个例子: for (int i = 0; i < 1000*10; i++) { sum += data[i/1000][i%10]; } 假如我们需要加一个判断,只有非负整数才需要作求和运算: for (int i = 0; i < 1000*10; i++) { if (data[i/1000][i%10] >= 0) sum += data[i/1000][i%10]; } 下面将这个判断

Go语言循环判断的使用~

Go 语言条件语句 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句. 下图展示了程序语言中条件语句的结构: if 语句由布尔表达式后紧跟一个或多个语句组成. 语法 Go 编程语言中 if 语句的语法如下: if 布尔表达式 { // 在布尔表达式为 true 时执行 } 栗子~ 1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main()

PHP和JS在循环、条件判断中的不同之处

一.条件判断: php中算  false 的情况 1. boolean:false 2. 整形:0 3.浮点型:0 4.字符串:"" "0"(其他都对) 5.空数组 6.空对象为真(只在php4算false,其他版本都算true) 7.null和尚未定义的变量 8.所有资源都算对,除php4,所有对象也算对 JS中if()中的表达式 1. Boolean: true 真 false 假 2. String:非空字符串为真 空字符串为假 3. Null/NaN/Und

Python中的判断、循环 if...else,while

if...else语句: a=3; b=3; if a == b :print(a,b)elif a <= b :print(str(a) + " is less than " + str(b))else :print(str(a) + " is greater than " + str(b)) ################################### n = 3if (n >= 0 and n <= 8) or (n >= 1

tp模版中使用js变量 和 循环为空判断

今天花费较长时间解决了两个问题,记下来. 都和这个语句有关: for(i in data){ str += '<div class="huodong">'; str += '<a href="{:U("details",array("id"=>" '+data[i].id+' "))}">'; if(data[i].line_pic !=null){ str += '<i

python基础:循环语句和判断语句

小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------谢谢您的参考,如有疑问,欢迎交流 一. python语句块和缩进 缩进是Python语法的一部分:在python语句中,空格是用来区分块的,每一块的语句,缩进量(空格)应该是相同的 Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字: 增加缩进表示语句块的开始,而减少缩进则表示语句块的退出. 在Python中,冒号(:)用来标识语

C语言-循环结构及break、continue

循环结构 -------------------------- --1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关键字 -------------------------- [写在开头:] 『 生活中的循环: C语言中的循环: 循环结构是程序中一种很重要的结构.其特点是,在给定的条件成立时,反复执行某程序段,直到条件不成立为止. C语言中提供了多种循环语句:

Swift流程控制之循环语句和判断语句详解

Swift提供了所有c类语言的控制流结构.包括for和while循环来执行一个任务多次:if和switch语句来执行确定的条件下不同的分支的代码:break和continue关键字能将运行流程转到你代码的另一个点上. 除了C语言传统的for-condition-increment循环,Swift加入了for-in循环,能更加容易的遍历arrays, dictionaries, ranges, strings等其他序列类型. Swift的switch语句也比C语言的要强大很多. Swift中swi

c#中质数判断

c#语言中如何判断质数首先要明白质数的定义,质数是指:除了1和本身,不能被其他任何数整除的数.判断思路:建立一个循环,从a=1开始求余,到a-1结束.其中只要有一个数字余数为0,则判断该数字不是质数,如果直到循环结束求余结果都不为0,则该数就是质数.所以在循环中,需要用到一个if判断来判断求余结果是否为0.实现代码:bool nums=truefor(int i=2;i<a;i++){ if(a%i==0) { nums=false; }}这样就判断出了a是不是质数,如果需要输出,只要看nums