今天学习的难度明显比前几天增加了,不仅要了解各种语句的组成结构,还要有逻辑编程能力,因为有点基础,所以其实学习起来不算很难,今天还运用了循环语句学习到了:阶乘算法,数字阶乘相加和二分法在有规律的数组中寻找特定数字,小有成就感,明天就是除夕,新年新气象,新年21岁,其实已经不能再收各路亲戚的红包了,希望新的一年能找到个好工作,明年春节我可以给亲戚家小朋友们包红包。
分支语句 if else
C语言中,非0就是真
1.语法结构:
if(表达式) // 真 才向下执行
语句;
2.if(表达式) 语句1;
else
语句2;
3.//多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
#includ<stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
} //打印不了,因为if else匹配错误
// if else就近原则匹配
// 改正
//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}
分支语句 switch
switch(整型表达式)
{
语句项;
}
#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;
}
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
default:
printf("输入错误\n");
break;
}
return 0;
}
循环语句 while
在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;
printf("%d ", i);
i = i+1;
}
return 0;
}
//输出1234
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;
printf("%d ", i);
i = i+1;
}
return 0;
}
//输出1234后死循环
#include
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)// getchar读取的字符放ch中,如果不等于EOF
putchar(ch); //输出ch
return 0;
}
这里的代码适当的修改是可以用来清理缓冲区的
EOF - end of file 文件结束标志
getchar();//获取一个字符
putchar(); //输出一个字符
循环语句 for
for(表达式1; 表达式2; 表达式3) 循环语句;
表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
break和continue 在for中类似,但是continue在while中可能会进入死循环,但是在for中只是跳过那一次的循环
1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
int i = 0;
//前闭后开的写法
for(i=0; i<10; i++)
{}
//两边都是闭区间
for(i=0; i<=9; i++)
{}
一些for循环的变种
int i = 0;
int j = 0;
//如果省略掉初始化部分,这里打印多少个hehe?
for(; i<3; i++)
{
for(; j<3; j++)
{
printf("hehe\n");
}
} //打印3个hehe 内层循环3次,回到外层再进内层,j还是=3
循环语句 do while
do
循环语句;
while(表达式);
#include <stdio.h>
int main()
{
int i = 10;
do
{
printf("%d\n", i);
i++;
}while(i<10);
return 0;
}
break和continue与while相似,会进入死循环,但是循环至少进行一次。