初学者对分支语句和循环语句的浅述(C语言)
Posted 张同学吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学者对分支语句和循环语句的浅述(C语言)相关的知识,希望对你有一定的参考价值。
分支和循环语句注意内容(C语言)
分支语句
1.if语句
格式:
格式:
if(表达式1){
语句列表;//如果表达式的结果为真,则语句执行
}
语法结构:
//单分支
if(表达式)
语句;
//双分支
if(表达式)
语句1;
else
语句2;
//多分支
if(表达式1){
语句1;
}
else if(表达式2){
语句2;
}
else{
语句3;
}
初学者应该养成加花括号的好习惯,方便分析代码的结构。如果不加括号,else只会匹配上面离他最近的if
2.switch语句
(1)switch语句常常用于多分支的情况。等价于if…else if…else;在switch语句中有case、break、default等关键字;break语句的实际效果是把语句列表划分为不同的部分。
(2)如果没有break那switch循环会在case语句中贯穿,一直到有break、或default为止。除了break,也可以用return、throw等来代替。
(3)case标签的目标值只能是唯一的值
(4)对于多个case标签的输入如果都是一样的则可以简写:
如:case 1:
case 2:
执行语句
(5)如果表达式是所有的标签都不匹配的值时,你可以在语句列表中增加一条default子句,当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。每个switch语句中只能出现一条default子句。
注意:switch表达式的参数包括整形,char,枚举,或相应可以为null的类型,bool和string也可以,除C语言都可以使用
#include <stdio.h>
int main()
{
int day = 0;
switch(day)
{
case 1:
printf("星期一\\n");
break;
case 2:
printf("星期二\\n");
break;
case 3:
printf("星期三\\n");
break;
case 4:
printf("星期四\\n");
break;
case 5:
printf("星期五\\n");
break;
case 6:
printf("星期六\\n");
break;
case 7:
printf("星期天\\n");
break;
}
return 0;
}
3…三元运算符
适用于判断有两个结果的情况,可读性较差,在取两者较大或较小值时经常用到。
(关系表达式) ? 表达式1 : 表达式2;
int a = 2;
int b = 1;
int c = (x > y) ? x : y;//如果a大于b 则是true,执行表达式1;
//如果a不大于b 则是false,执行表达式2;
循环语句:
1.while语句
while (表达式)
{
语句;
}
还有一个do while语句,先执行一次do中的语句,再判断表达式;
do{
语句;
}
while(表达式);
2.for语句
for(表达式1;表达式2;表达式3);
1.不建议在for循环当中修改循环变量,防止循环容易失去控制。
2.在写循环控制变量的取值时,最好用前闭后开的形式。
比如取1-100:for(int i=1;i<101;i++)
;
3. 循环过程:从第二次循环开始,不会执行表达式1。直到表达式2不成立。
表达式1:初始条件;表达式2:判断条件;表达式3:步进
4.for语句和while语句可以等价转化。
3.continue和break
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。对于for循环,continue后是会继续执行表达式3,进行下一次循环,只要是for循环,每次循环结束都会自动执行表达式3进行下一次循环,直到满足结束循环的条件为止。
break语句就简单粗暴,直接跳出所有循环,并且终止后面的循环,循环语句不再执行。
4.死循环三种情况
(1)goto死循环(因为安全性较低,所以goto基本不用)
int a=1;
loop:
if(i==1)
goto loop;
(2)、for(){}当for循环的第二个表达式没有条件时,就会导致死循环。
(3)、while (1)或者do{}while (1)时死循环;
几个入门代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int measure(int x, int y) {//求最大公约数,辗转相除法
if (x <= y) {
int m = 0;
m = y;
y = x;
x = m;
}
int z = y;
while (x % y != 0) {
z = x%y;
x = y;
y = z;
}
return z;
}
int main()//暴力枚举法求最大公约数
{
int a = 18;
int b = 24;
int c = 0;
while(c=a%b)
{
a = b;
b = c;
}
printf("%d\\n", b);
return 0;
}
int main() {//计算1000-2000年之间的所有闰年
int i = 0;
for (int i = 1000; i <=2000; i++)
{
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
printf(" %d\\t", i);
}
}
同为初学者,希望我写的文章能为你带来一些帮助,加油年轻人!
以上是关于初学者对分支语句和循环语句的浅述(C语言)的主要内容,如果未能解决你的问题,请参考以下文章