浅谈C语言分支循环语句
我们来聊聊C语言中的分支和循环语句。它们是控制程序执行流程的基础结构是编写任何非平凡程序所必需的。分支语句 (Selection Statements)分支语句允许程序根据条件的不同选择执行不同的代码块。C语言中主要的分支语句是if、if-else和switch。if语句:最简单的形式用于在条件为真时执行一段代码。语法if (condition) { // 条件为真时执行的代码块 }示例int age 18; if (age 18) { printf(您已成年。\n); }if-else语句:在if的基础上增加了else分支用于在条件为假时执行另一段代码。语法if (condition) { // 条件为真时执行的代码块 } else { // 条件为假时执行的代码块 }示例int num 10; if (num % 2 0) { printf(%d 是偶数。\n, num); } else { printf(%d 是奇数。\n, num); }if-else if-else语句:用于处理多个互斥的条件分支。语法if (condition1) { // condition1 为真时执行 } else if (condition2) { // condition2 为真时执行 } else if (condition3) { // condition3 为真时执行 } else { // 所有条件都不满足时执行 }示例int score 85; if (score 90) { printf(优秀\n); } else if (score 80) { printf(良好\n); } else if (score 60) { printf(及格\n); } else { printf(不及格\n); }switch语句:用于根据一个表达式的值选择多个分支中的一个执行。特别适用于对同一个变量进行多种离散值的判断。语法switch (expression) { case constant1: // 代码块1 break; case constant2: // 代码块2 break; ... default: // 默认代码块 (可选) }要点expression的结果必须是整型或字符型。case后面必须是常量表达式整数常量、字符常量或枚举常量。break语句用于跳出switch块。如果某个case后没有break程序会继续执行下一个case的代码称为“贯穿”这有时是有意设计的但通常需要避免。default分支是可选的用于处理所有case都不匹配的情况。示例char grade B; switch (grade) { case A: printf(优秀\n); break; case B: case C: printf(良好。\n); break; case D: printf(及格。\n); break; case F: printf(不及格需要努力。\n); break; default: printf(无效的成绩。\n); }循环语句 (Iteration Statements)循环语句允许程序重复执行一段代码块多次。C语言中的主要循环语句是while、do-while和for。while循环:在循环开始前检查条件条件为真则执行循环体执行完后再检查条件。如此反复直到条件为假。语法while (condition) { // 循环体代码块 }示例int count 0; while (count 5) { printf(Count: %d\n, count); count; }do-while循环:先执行一次循环体然后再检查条件。条件为真则继续执行循环体。如此反复直到条件为假。语法do { // 循环体代码块 } while (condition);特点循环体至少会执行一次。示例int num; do { printf(请输入一个正整数: ); scanf(%d, num); } while (num 0); printf(您输入的是: %d\n, num);for循环:提供了一种更紧凑的方式来编写循环通常用于已知循环次数的场景。它将初始化、条件检查和更新操作集中在一行。语法for (initialization; condition; update) { // 循环体代码块 }执行流程执行initialization(只执行一次)。检查condition。如果condition为真执行循环体然后执行update。重复步骤 2 和 3直到condition为假。示例for (int i 0; i 10; i) { printf(%d , i); } // 输出: 0 1 2 3 4 5 6 7 8 9循环控制语句在循环内部可以使用break和continue来改变正常的执行流程break:立即终止其所在的整个循环或switch语句跳出该结构。continue:跳过当前循环迭代中剩余的代码直接进入下一次循环的条件检查对于while和do-while或更新步骤对于for。总结分支语句if,if-else,switch让程序能够根据条件做出决策选择执行不同的路径。循环语句while,do-while,for让程序能够重复执行特定的任务。break和continue提供了更精细的循环控制。理解并熟练运用这些控制结构是编写有效C语言程序的关键。一个综合示例#include stdio.h #include math.h // 为了使用 sqrt 函数 int main() { int number; printf(请输入一个大于1的整数: ); scanf(%d, number); // 分支检查输入是否有效 if (number 1) { printf(输入无效请确保输入大于1的整数。\n); return 1; // 非正常退出 } int isPrime 1; // 假设是素数 // 循环检查 number 是否是素数 (只检查到 sqrt(number)) for (int i 2; i sqrt(number); i) { if (number % i 0) { // 分支如果找到因子 isPrime 0; // 不是素数 break; // 跳出循环已确定不是素数 } } // 分支根据 isPrime 的值输出结果 if (isPrime) { printf(%d 是一个素数。\n, number); } else { printf(%d 不是一个素数。\n, number); } return 0; }这个示例结合了输入、分支if、循环for和循环控制break来判断用户输入的数是否是素数。