C语言程序设计04——控制结构与语句

目录

1.C语言一般有三种基本结构:顺序结构、选择结构和循环结构

2.选择结构(分支语句)

2.1 语法结构:           

2.2 switch一种用于多分支结构的选择语句

3.循环结构

3.1while循环


1.C语言一般有三种基本结构:顺序结构、选择结构和循环结构

顺序结构是按语句排列顺序依次执行的;

选择结构是按给定的条件,从两条或多条路径中选择下一步要执行的操作路径;

循环结构是根据一定的条件,重复执行给定的一组操作。

由这三种基本结构或三种基本结构的复合嵌套构成的程序成为结构化程序。结构清晰、层次分明、良好的可读性、易维护性的特点。

注:C语言中由一个分号;隔开的就是一条语句。例:printf(“hehe”); 1+2;

2.选择结构(分支语句)

2.1 语法结构:           

  • 选择语句例子:
    int main()
    {
    	int age=100;
    	if(age<18)
    		printf("未成年\n");
    	else if(age>=18 && age<28)
    		printf("青年\n");
    	else if(age>=28 && age<50)
    		printf("壮年\n");
    	else if(age>=50 && age<80)
    		printf("老年\n");
    	else
    		printf("长寿\n");
    	return 0;
    
  • 	Ø 例题:打印结果是什么?
    int main()
    {
    	int a = 0;
    	int b = 2;
    	if(a == 1)
    		if(b == 2)
    			printf("hehe\n");
    	else
    		printf("haha\n");
    	return 0;
    }
    结果:
    不打印
    讲解:题中代码与下列代码是相同的
    int main()
    {
    	int a = 0;
    	int b = 2;
    	if(a == 1)
    		if(b == 2)
    			printf("hehe\n");
    		else
    			printf("haha\n");
    	return 0;
    }
    else是与第二个if匹配的;
    else与它离得最近的未匹配的if进行匹配;
    
    
  • 代码风格
    代码1 //风格差
    if(condition)
    {  
         return x;
    }
          return y;
    //条件为真返回x,条件为假返回y
    
    
    
    
    代码2 //好,可读性高
    if(condition)
    {  
         return x;
    }
    else
    {     
         return y;
    }

  • 例题:
    int main()
    	{
    		int num = 4;
    		if(num == 5)//别写成num=5,是赋值,若 写成num=5,打印呵呵,结果不一样,建议写成 5==num不会错
    		{
    			printf("呵呵\n");
    		}
    		return 0;
    	
    }//正确代码 结果代码不打印
    
    
    
    错误代码 结果打印呵呵
    int main()
    	{
    		int num = 4;
    		if(num = 5)
    		{
    			printf("呵呵\n");
    		}
    		return 0;
    	
    }
    练习:1.判断一个数是否为奇数
    	  2.输出1-100内的所有奇数
    	1.
    	int main()
    	{
    		int num = 0;
    		int a =0;
    		scanf("%d",&num);
    		a = num % 2;
    		if(1 == a)
    			printf("%d是奇数\n",num);
    		else
    			printf("%d不是奇数\n",num);
    		return 0;
    	}
    
    2.
    int main()
    {
    	int num = 1;
    	while(num <= 100)
    	{
    			int a=0;
    			a = num % 2;
    			if(1 == a)
    				printf("%d是奇数\n",num);
    			num++;
    	}
    	return 0;
    }

    2.2 switch一种用于多分支结构的选择语句

          switch(表达式)

          {

               case 常量表达式1:语句1;

               case 常量表达式2:语句2;

               case 常量表达式3:语句3;

    …………………………

               case 常量表达式n:语句n;

                   default:                          语句组n+1;

           }

    //表达式的值必须为整形或字符型,同样case常量必须是整形常量或字符型常量,不能是变量

    例如case n会报错

    //case语句可以为空或多条语句,若语句为空,则共用后续case的语句组

    //default部分可以缺省

    例子:输出星期几
    int main()
    {
    	int day=0;
    	scanf("%d",&day);
    	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;
    	default:
    	        printf("输入错误\n");
    	        break;
    	}
    	return 0;
    }
    
    输出休息日和工作日
    int main()
    {
    	int day=0;
    	scanf("%d",&day);
    	switch(day)
    	{
    	case 1:
    	case 2:	
    	case 3:	
    	case 4:	
    	case 5:
    		printf("工作日\n");
    		break;
    	case 6:	
    	case 7:
    		printf("休息日\n");
    		break;
    	}
    	return 0;
    }

  • 例题 m、n结果是?5、3

3.循环结构

C语言提供了三种循环语句实现循环结构,while语句,do-while语句和for语句

3.1while循环

//语法结构

       while(表达式)

                    语句;

	
	//打印数字1-10
	int main()
	{
		int i=1;
		while(i<=10)
		{
			printf("%d ",i);
			i++;
		}
		return 0;
	}
  •  其实在循环中只要遇到break,就停止后期所有的循环,直接终止循环。所以while中的break适用于永久终止循环的。
break的例子://打印1 2 3 4
int main()
{
	int i=1;
	while(i<=10)
	{
		if(i == 5)
			break;
		printf("%d ",i);
		i++;
	}
	return 0;
}
  • continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句判断部分,进行下一次循环的入口判断。
continue的例子:
int main()
{
	int i=1;
	while(i<=10)
	{
		if(i == 5)
			continue;
		printf("%d ",i);
		i++;
	}
	return 0;
}

结果:

  • 例题:
    代码1
    int main()
    {
    	int ch =0;
    	while ((ch = getchar())!= EOF)
    	//end of file——》-1  ctrl+z
    	//当键盘输入ctrl+z时,结束循环,反之则打印输入字符
    		putchar(ch);
    	return 0;
    
    }


版权声明:本文为weixin_51457266原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。