顺序语句:程序中的所有语句都是从上到下逐条执行的。这类语句是最简单,也是最基本的语句。大多数都是基本语句.
#include
int main()
{
printf("生\n");
printf("活\n");
printf("就\n");
printf("是\n");
printf("不\n");
printf("断\n");
printf("崩\n");
printf("溃\n");
printf(",\n");
printf("不\n");
printf("断\n");
printf("自\n");
printf("愈\n");
return 0;
}
#include
int main()
{
int a=8;
int b=3;
int c;
c=a+b;
printf("a+b=%d\n",c);
c=a-b;
printf("a-b=%d\n",c);
c=a*b;
printf("a*b=%d\n",c);
c=a/b;
printf("a/b=%d\n",c);//因为上面我定义是整型 c,所以这里的小数并没有输出
c=a%b;
printf("a取余b=%d\n",c);
}
运行结果:
a+b=11
a-b=5
a*b=24
a/b=2
a取余b=2
C语言中需要对一些条件进行选择判断(落水后,对于丈母娘和女朋友之间的选择)
C语言的选择语句允许程序在一组选项中选择一条特定的执行路径。
C语言包括两类选择语句,if语句和switch语句
格式:
if(判断条件)
{
执行语句
}
其中表达式的括号是必须的,先条件判断,条件成立执行语句,
#include
int main()
{
int i = 3;
int j = 5;
if (i < j)
{
printf("%d比%d小\n", i, j);
}
运行结果:
3比5小
if语句中可以包含else子语句,为真时,执行else后面的语句,其基本形式如下:
格式:
if(判断条件)
{
执行语句1
}
else
{
执行语句2
}
判断两个数字大小
#include
int main(){
int a,b;
printf("输入数字:");
scanf("%d %d",&a,&b);
if(a!=b)
{ //!=表示不等于
if(a>b)
{
printf("a%>%\n",a,b);
}
else
{
printf("%d<%d\n",a,b);
}
}
else
{
printf("%d=%d\n",a,b);
}
return 0;
}
}
#include
int main()
{
int age;
printf("请输入你的年龄 :");
scanf("%d",&age);
if (age>=18)
{
printf("恭喜,你已经成年,可以打王者荣耀!\n");
}
else
{
printf("抱歉,你未成年,你被限制时长玩王者荣耀!\n");
}
return 0;
}
当在else语句的子语句中嵌套另一个if语句时,一般不对它进行缩进,而是把每个else都与最初的if对齐,形成级联式if语句的书写形式,这种形式可以避免判定数量过多时造成的过度缩进问题,同时也更清晰地显示这是一连串的判定:
格式:
if(判断条件)
{
执行语句1
}
else if(判断条件2)
{
执行语句2
}
else if(判断条件n)
{
执行语句n
}
else
{
执行语句 n+1
}
#include
int main()
{
char c;
printf("请输入一个字符:");
c=getchar();
if(c<32)
printf("这是一个控制字符\n");
else if(c>='0'&&c<='9')
printf("这是一个数字\n");
else if(c>='A'&&c<='Z')
printf("这是一个大写字母\n");
else if(c>='a'&&c<='z')
printf("这是一个小写字母\n");
else
printf("这是其他字符\n");
return 0;
}
/*本例要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。
由ASCII码表可知ASCII值小于32的为控制字符。如\n
在“0”和“9”之间的为数字,
在“A”和“Z”之间为大写字母,
在“a”和“z”之间为小写字母,其余则为其它字符。
这是一个多分支选择的问题,用多个 if else 语句编程,
判断输入字符ASCII码所在的范围,分别给出不同的输出。
*/
关于这里的控制字符我也搞不懂啊,下面是查阅的资料:
控制字符(Control Character),出现于特定的信息文本中,表示某一控制功能的字符。
在ASCⅡ码中,第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等。
在编程中,常常需要把表达式和一组值相比较,从中找到匹配项,执行相应的语句。级联式if语句可以实现这个需求,但是对于整型的表达式值和可选项来说,C语言提供了switch语句。switch语句比级联式if更易读,并且执行速度往往比较快。
switch语句的常用格式是:
switch (表达式)
{
case 常量表达式:
执行语句
...
case 常量表达式:
执行语句
default:
执行语句
}
运行机理:
switch中的表达式结果会找对应的case匹配,如果匹配成功就找对应的的case执行
直到遇到break结束,如果case都不匹配,会直接执行default后面的语句
switch后面跟的由括号括起来的整型表达式称为控制表达式,该表达式的结果必须是整型或是字符型。
每一种情况以case 常量表达式 :开始,常量表达式不能包含变量及函数调用,且结果必须为整数值。case后面只能跟一个常量表达式,但多个情况标号可以放在同一组语句前面,表示对多组情况执行同一组语句
可跟任意数量的执行语句,不需要用大括号把这些语句括起来,且最后一条语句通常是break语句。在switch语句中,执行break语句时,程序会跳出switch语句,而继续执行switch语句后面的语句。忘记break语句,程序就会继续执行下面情况的语句,也是编程时常犯的错误。
C语言不允许重复的case 常量表达式,但不要求情况的顺序,default情况可以不放在最后。也不要求必须有default情况,若在没有default的情况下且所有情况都不匹配,就就直接传给switch语句后面的语句。
判断星期几
#include
#include
int main() {
printf("请输入今天是星期几(1-7): \n");
int day = 0;
scanf("%d", &day);
switch (day) { //switch括号里面必须放整数
case 1:
printf("星期一!\n");
break;//break表示跳出当前的switch语句
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;
default://否则,执行后面的语句
printf("您的输入有误!\n");
}
return 0;
}
自动贩卖机
#include
int main()
{
int button;
printf("******自动贩卖机******\n");
printf("1.可乐\n");
printf("2.芬达\n");
printf("3.王老吉\n");
printf("4.橙汁\n");
printf("5.雪碧\n");
printf("请按1-5键\n");
scanf("%d",&button);
switch(button)
{
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;
default :printf("输入错误\n");break;
}
}
在实际生活中我们会将一件事情重复做很多次,C语言中也会重复执行同一代码块
你是程序员,你惹你女朋友生气了,你女朋友说给我写10遍我爱你,你说这个简单,你啪啪啪写了10个,你女朋友还是不服气,叫你写一千遍,你说这不是刁难我吗,那么今天就慢慢敲代码吧.
//输出十遍我爱王思宇
#include
main()
{
printf("1.我爱王思宇 \n");
printf("2.我爱王思宇 \n");
printf("3.我爱王思宇 \n");
printf("4.我爱王思宇 \n");
printf("5.我爱王思宇 \n");
printf("6.我爱王思宇 \n");
printf("7.我爱王思宇 \n");
printf("8.我爱王思宇 \n");
printf("9.我爱王思宇 \n");
printf("10.我爱王思宇 \n");
}
结果你知道循环语句
// 输出我爱王思宇一万遍
#include
main()
{
int i;
i=1;
while(i<=10000)
{
printf("%d.我爱王思宇\n",i);
i=i+1;
}
}
运行结果:
我就不说了,是真的长,
格式:
while(循环条件)
{
执行语句
}
运行机理:
while语句会反复地进行条件判断,只要条件成立,{ }里的执行语句就会一直执行下去
{ }中的执行语句称为循环体,循环体是否存在取决于循环条件,表达式的值为真,继续执行,表达式为假,结束语句
//求1+2+3+---+100的和
#include
int main()//求各
{
//定义变量并初始化
int i=1;
int sum=0;
while(i<=100) //条件表达式
{
sum+=i;
i+=1; //步长
}
printf("和是%d",sum);
}
两者的不同之处在于
while语句先判断循环条件,再根据判断结果来决定是否执行大括号{ }中的代码
do…while循环语句先要执行一次大括号{ }内的代码在判断循环条件,也就是说不管怎样都要循环一次
格式:
do
{
执行语句
......
}while(循环条件);
do…while循环语句将循环条件放到了循环体后面,这意味这循环体会无条件的执行一次,在来根据循环条件来判断是否执行
//进行账号登陆
#include
int main()//登录
{
//定义变量并初始化
int password;
printf("我的qq号:1132403158\n") ;
do
{
printf("请输入qq登录密码:");
scanf("%d",&password);
}while(password!=123456); //条件表达式
printf("登录成功");
}
运行结果:
我的qq号:1132403158
请输入qq登录密码:123456
登录成功
----------------------------
//求1+2+3+---+100的和
#include
int main()//求各
{
//定义变量并初始化
int i=1;
int sum=0;
do
{
sum+=i;
i+=1; //步长
} while(i<=100); //条件表达式
printf("和是%d",sum);
}
for循环的使用最为灵活,且适合应用在循环次数确定的情况下。 |
for循环的思想是:先分析清楚循环的初始值,循环的控制条件,循环变量的步长变化,然后直接把语句再写到for的循环体里即可,这样可以让问题想的很清楚,流程也很清楚。
格式:有两种情况
for(初始化表达式;循环条件;操作表达式)
{
执行语句
}
for(初始化表达式;循环条件;操作表达式)
执行语句;
运行机理:
在做循环条件之前,有一个初始化表达式1然后判断在循环条件中是否成立,如果成立,就执行大括号{ }里的语句,然后在回到操作表达式,操作表达式再到循环条件,成立继续执行大括号{ }里的语句,不成立就退出循环.
//打印1到10
#include
int main()
{
//定义变量并初始化
int i=1;
for(i=1;i<=10;i++)
{
printf("%d\n",i);
}
}
for语句的循环嵌套
#include
int main()
{
int ii=0; // 分组编号的计数器
int jj=0; // 每组序号的计数器
for (ii=1;ii<=3;ii++)
{
for (jj=1;jj<=4;jj++)
{
printf("第%d组的第%d位出场。\n",ii,jj);
}
}
}
运行结果:
第1组的第1位出场。
第1组的第2位出场。
第1组的第3位出场。
第1组的第4位出场。
第2组的第1位出场。
第2组的第2位出场。
第2组的第3位出场。
第2组的第4位出场。
第3组的第1位出场。
第3组的第2位出场。
第3组的第3位出场。
第3组的第4位出场。
运行机理:
第一个for循环,条件成立,进入第二个for循环.第二个for循环里条件成立,执行语句,直到第二个for循环不成立,退出循环.回到第一个for循环,条件成立,在进入第二个循环,直到第一个for不成立,退出全部循环.
从上面的运行结果,我们就可以看到
//九九乘法表
#include
int main()
{
int i = 0;
int j = 0;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d ", i, j, i*j);
if (i == j)
printf("\n");
}
}
return 0;
}
跳转语句用于实现循环执行过程中程序流程的跳转
有break语句和continue语句
#include
int main()
{
for(int i=1;i<=10;i++)
{
if(i==6)
break;
printf("%d\n",i);
}
}
运行结果
1
2
3
4
5
怎么只到5,怎么只到5,怎么只到5
运行机理:
遇到break循环结束,跳出循环
#include
int main()
{
for(int i=1;i<=10;i++)
{
if(i==6)
continue;
printf("%d\n",i);
}
}
运行结果
1
2
3
4
5
7
8
9
10
运行机理:
遇到continue语句,立即终止本次循环,并执行下一次循环
最后还有一点go to 语句
从当前位置跳转到指定位置,
go to 语句也称为无条件跳转语句
格式:
go to语句标记;
//进行账号登陆
#include
int main()//登录
{
//定义变量并初始化
int password;
printf("我的qq号:1132403158\n") ;
goto nopassword;
do
{
printf("请输入qq登录密码:");
scanf("%d",&password);
}while(password!=123456); //条件表达式
nopassword:
printf("登录成功");
}
运行结果:
我的qq号:1132403158
登录成功
不需要输入密码就登入成功.是不是很66666
从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你! |
如果又出错的,请各位友友指正。
新人报到,各位友友们,给我个三联(点赞,关注,收藏)