C语言学习的第三章节之控制语句

控制语句之循环篇

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加一,再进行处理。–也类似

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值