3.分支与循环

📅2026/7/12 20:52:07 👁️次浏览
3.分支与循环
1.关系操作符关系操作符不宜连用ijk相当于(ij)ki先和j比较大小为真返回1为假返回00或1再与k比较。正确写法为ijjk2.三目操作符exp1 ? exp2 : exp3条件操作符的计算逻辑是如果 exp1 为真 exp2 计算计算的结果是整个表达式的结果如果 exp1 为假 exp3 计算计算的结果是整个表达式的结果。3.逗号表达式int aa3,a3,bc*3,c2*ab逗号表达式会从左到右依次计算但是整个表达式的结果是最后一个表达式的结果4.逻辑操作符 , || , • ! 逻辑取反运算符改变单个表达式的真假。• 逻辑与运算符就是并且的意思两侧的表达式都为真则为真否则为假。• || 逻辑或运算符就是或者的意思两侧至少有一个表达式为真则为真否则为假if((year%40 year%100!0) || (year%4000)判断一个年份是否是闰年的代码。• 如果左边的表达式满足逻辑运算符的条件就不再对右边的表达式求值。这种情况称为“短路”左边为0右边不执行。|| 左边为真右边不执行。5.switch 语句switch (expression){ case value1: statementcase value2: statementdefault: statement }• switch 后的 expression 必须是整型表达式• case 后的值必须是整形常量表达式字符•每一个case语句执行完成后需要加上break才能跳出switch语句否则会依次向后执行6.while循环输入一个正的整数逆序打印这个整数的每一位 例如 输入1234输出4 3 2 1 输入521输出1 2 5题目解析1. 要想得到n的最低位可以使用n%10的运算得到的余数就是最低位如1234%10得到42. 要想去掉n的最低位找出倒数第二位则使用 nn/10 操作就可以去掉最低位的如 n1234/10得到123123相较于1234就去掉了最低位123%10就得到倒数第二位3。3. 循环1和2两个步骤在n变成0之前就能到所有的位。参考代码#include stdio.h int main() { int n 0; scanf(%d, n); while(n) { printf(%d , n%10); n / 10; } return 0; }7. for循环for(表达式1; 表达式2; 表达式3)语句1初始化2判断3调整整个循环的过程中表达式1初始化部分只被执行1次剩下的就是表达式2、循环语句、表达式3在循环。8. do-while 循环do语句while(表达式)do while 语句中循环体是至少执行一次的这是 do while 循环比较特殊的地方9. break和continue语句• break 的作用是用于永久的终止循环只要 break 被执行直接就会跳出循环继续往后执行。• continue 的作用是跳过本次循环中 continue 后边的代码在 for 循环和 while 循环中有 所差异的9.1 while循环中的continuecontinue 可以帮助我们跳过某一次循环 continue 后边的代码直接 到循环的判断部分进行下一次循环的判断如果循环的调整是在 continue 后边的话可能会造成死循环9.2 for循环中的continuefor 循环中 continue 的作用是跳过本次循环中 continue 后的代码直接去到循环的调 整部分。未来当某个条件发生的时候本次循环无需再执行后续某些操作的时候就可以使用 continue 来实现10. 练习找出100~200之间的素数并打印在屏幕上。注素数又称质数只能被1和本身整除的数字。题目解析1. 要从100~200之间找出素数首先得有100~200之间的数这里可以使用循环解决。2. 假设要判断i是否为素数需要拿2~i-1之间的数字去试除i需要产生2~i-1之间的数字也可以使用 循环解决。3. 如果2~i-1之间有数字能整除i则i不是素数如果都不能整除则i是素数。#include stdio.h int main() { int i 0; //循环产生100~200的数字 for(i100; i200; i) { //判断i是否为素数 //循环产生2~i-1之间的数字 int j 0; int flag 1;//假设i是素数 for(j2; ji; j) { if(i % j 0) { flag 0; break; } } if(flag 1) printf(%d , i); } return 0; }11. goto 语句C语言提供了一种非常特别的语法就是 goto 语句和跳转标号 goto 语句可以实现在同一个函数内跳转到设置好的标号处#include stdio.h int main() { printf(hehe\n); goto next; printf(haha\n); next: printf(跳过了haha的打印\n); return 0; }goto 语句如果使用的不当就会导致在函数内部随意乱跳转打乱程序的执行流程所以我们的建 议是能不用尽量不去使用但是 goto 语句也不是一无是处在多层循环的代码中如果想快速跳出 使用 goto 就非常的方便了。本来 for 循环想提前退出得使用 break 一个 break 只能跳出一层 for 循环如果3层循环嵌套 就得使用3个 break 才能跳出循环所以在这种情况下我们使用 goto 语句就会更加的快捷。