控制语句之循环篇
for循环
#include<stdio.h>
#include<math.h>
#define N 5
/*控制语句的学习之循环语句for*/
int main()
{
int i,j,k,num;
/*for 语句是一个最简单的循环语句,它的基本结构如下,括号中分别有三个语句,用分号隔开;
第一个语句为变量的初始化语句,注意C语言中变量的定义一般要在使用之前,即声明语句必须在执行语句之前;
第二个语句为布尔语句即判断语句,判断是否满足条件,如果条件为真即1就做,为假即0就不做;
第三个语句为步进语句,即执行完循环体后对变量进行的一个操作,如果没有这个语句可能会是程序一直执行即陷入死循环;
{}花括号包着的就是循环体了,里面是要做的循环内容,当语句只有一句的使用可以不用花括号,直接分号结束即可;
*/
for(i=0;i<N;i++){
printf("Hello,welcome to C program Language world!\n");
}
for(i=0;1;i++) //这就是死循环语句,死循环语句可以用来处理需要反复询问信息,并且要求输入正确信息的作业
{
printf("请输入一个正数:");
scanf("%d",&num);
if(num>0){
printf("Successfully!\n");
break;//break ;也是一种控制语句 ,它的作用是退出当前的循环,它只能退出一个循环体,不能连续跳两个即以上
}
else printf("输入有误,请重新输入\n");
}
/*循环的嵌套
循环的嵌套可以用于打印规律形状和一些特定的作业当中
*
***
*****
******* 这就是特殊的图形,请利用循环嵌套打印
*****
***
*
*/
for(i=-3;i<=3;i++){
for(j=-3;j<=3;j++){
if(abs(i)+abs(j)<=3){
printf("*");
}
else printf(" ");
}
printf("\n");
}
/*或者可以采用下面的循环体实现上面的功能,上面的是我的计算机老师提出来的一种调用math.h库的解决方法。而下面这个方法虽然比较繁琐,但是可能更具有普遍性*/
for(i=1;i<=4;i++){
for(j=1;j<=4-i;j++) {
printf(" ");
}
for(k=1;k<=(2*i-1);k++){
printf("%d",k);
}
printf("\n");
}
for(i=1;i<=3;i++){
for(j=1;j<=i;j++){
printf(" ");
}
for(k=1;k<=7-2*i;k++){
printf("%d",k);
}
printf("\n");
}
return 0;
}
while 循环
#include<stdio.h>
int main()
{
/*while 循环是一个十分好用的循环。具体有两种用法:直到型循环和当型循环*/
/*当型即当满足条件后执行下面的语句,不满足就一次也不执行*/
int i=0;
while (i<=5){
printf("I want to let a girl to be my girlfriend!\n");
i++;
}
/*可以发现这一个类型(当型)while循环其实就是将for循环拆开写,将初始化语句放在外面写,判断语句放到while()里面,而步进语句则放在循环体里面书写
可以对比一下
for(i=0;i<=5;i++){
printf("I want to let a girl to be my girlfriend!\n");
}
*/
/*下面是直到型循环,先执行一次后,再判断是不是符合条件,如果符合条件就退出。这个写法就可以替代需要死循环的语句*/
i=0;
do {
printf("Sir,That is impossible!Please calm down!\n");
i++;
}while(i<=5);
/************这是一条分割线*********************/
i=450;
do {
printf("Sir,That is impossible!Please calm down!\n");
i++;
}while(i<=5);
/*可以发现,无论满足还是不满足条件,直到型循环都至少执行一次循环体中的语句*/
return 0;
}
配合循环语句的控制语句
下面的程序没有什么意义,主要是熟悉一下基本break和continue的用法
#include<stdio.h>
int main()
{
int num,i,k;
while(12525){
printf("请输入1-10的数字:");
scanf("%d",&num);
if(num>0&&num<=10){
break;
}
else printf("输入有误!!!\n");
}
printf("现在开始对你输入的数字进行处理,判断你的类型\n");
num=num*5;
for(i=1;i<=10;i++){
if(i!=6)
printf("emmm,看来有点难计算耶,这是第%d次运算\n",i);
else continue;
if (i==5){
printf("目前是第六次运算\n");
printf("你是一个很聪明的同学,我们现在还在思考到底要把你分到哪一个学院呢!\n");
}
for(num=num;num<=50;num++){
if(num%3==0){
printf("Hally Academic !\n");
break;
}
if(num%3==1){
printf("Smart Academic!\n");
break;
}
else{
printf("Talent Academic!\n");
break;
}
}
}
printf("哈哈哈,经过这么多运算你应该知道最适合你的学院了吧\n");
return 0;
}
控制语句之开关语句
#include<stdio.h>
int main()
{
int num,i,j,k;
while(1){
printf("请输入要转换的数字:");
scanf("%d",&num);
if(num>=1&&num<=7) break;
else printf("输入有误,请重新输入!!!\n");
}
switch(num){ //switch括号内部是运算表达式,下面case则是运算后的结果的可能性
case 1 :{
printf("这是星期一,课还行,有实验课\n");
break;
}
case 2:{
printf("今天是周二,满课,真不错\n");
break;
}
case 3:{
printf("今天周三,课还行\n");
break;
}
case 4:printf("今天是周四,快放假了\n"); break; //注意每一个case 后面必须加上一个break,如果不加上break语句那么就会导致执行完该语句后会继续执行直到遇到break或者语句执行结束
case 5:printf("今天是周五,快放假了\n"); break;
case 6: printf("实验课快乐\n"); break;
default: printf("实验课快乐\n"); //default 是默认的一个执行结果
}
printf("Successfully!\n");
return 0;
}
判断语句(条件语句)
if语句很常见的操作
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if((a+b)>c&&(a+c)>b&&(b+c)>a){
printf("可以组成三角形");
}
else printf("不能组成三角形");
return 0;
}
C语言运算逻辑顺序即运算优先级的问题
结合课本和老师上课的知识,
可以简单记忆为:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
数组的[]运算是一级的
C语言当中还有一个自增和自减的运算
++和–
a++和++a是有区别的,a++是先对a进行一定的处理再加一,++a是先对a加一,再进行处理。–也类似