【C语言】分支与循环结构

文章目录

    • if ||switch语句
  • 循环结构
    • while、do while、for语句3种循环语句的作用及区别
    • break与continue的区别与作用

#分支结构

if ||switch语句

if()
语句;

如果满足if中的条件,则为真(非0),执行语句,得出结果。若为假(为0),则结束。

例如:#include<stdio.h>
      int main()
      {
      int a;
       scanf("%d",&a);
      if(a>10)
       printf("%d ",a);
      return 0;
     }
 if()
 语句1;
 else
 语句2;

如果满足if语句中的条件,则执行语句1,否则执行语句2.

例如:#include<stdio.h>
int main()
{
 int a,b;
 scanf("%d%d",&a,&b);
   if(a==b)
         printf("%d",a*b);
   else
         printf("%d",a-b);
         return 0;
  }       

如果有多个条件语句,且输出内容不同时,可采用另一种if语句或者switch语句。
if() 语句1; else if() 语句2; else if() 语句3; else if() 语句4; else 语句5;

  • switch语句
    用法: switch语句是开关语句,一般与case、break、default配合使用,对流程进行控制。switch作为一个开关,当变量表达式的值对应case中的值时,执行case后面的语句后跳出switch语句,如果都不符合,则执行default后面的语句后跳出switch语句。
//输入年月日,判断当天是该年的第几天
#include 
	int main()
	{
		int leap, sum,year,mounth,day;
		       printf(" 年 月 日:\n");
		scanf_s("%d%d%d\n", &year, &mounth, &day);
		switch (mounth)
	  {
		case 1:sum = 0; break;
		case 2:sum = 31; break;//闰年29,非闰年28
		case 3:sum = 59; break;
		case 4:sum = 90; break;
		case 5:sum = 120; break;
		case 6:sum = 151; break;
		case 7:sum = 181; break;
		case 8:sum = 212; break;
		case 9:sum = 243; break;
		case 10:sum = 273; break;
		case 11:sum = 304; break;
		case 12:sum = 334; break;
	}
	  sum = sum + day;
        if (year % 400 == 0 || year % 4 == 0 && year % 100 == 0)
			leap = 1;
		else leap = 0;
		if (leap == 1 && mounth > 2)
			sum++printf("是该年的第%d天", sum);
		return 0;
	}

注意:

  • switch后的expression必须是整形表达式
  • case后的值必须是整型常量表达式

循环结构

while、do while、for语句3种循环语句的作用及区别

例如:打印数字1-100

  • 当用while时:
#include 
int main()
{
int i=1;//初始化局部变量
while(i<=100//循环条件
    {
       i++//循环体
      printf("%d",i);//循环体,大括号里面都是循环体
    }
return 0;
}
  • 当用do while 时
#include 
int main()
{
int i=1;
do 
{
   printf("%d",i);//循环体
   i++;
}  while(i<=100);//循环条件
return 0;
}
  • 当用for时:
#include 
int main()
{
int i;
for(i=1;i<=100;i++)//for(表达式1;表达式2;表达式3)3个表达式作用分别是:初始化、判断、调整;
 {
    printf("%d",i);//该部分写循环语句,可以写多个;
 }
 return 0;
 }

break与continue的区别与作用

  break和continue经常运用到循环语句当中,当日两者是有所区别的。
  通常的解释是:
  continue语句只跳出本次循环,但是下次循环还会继续执行,只影响本次循环。
  break语句指在执行循环时,跳出循环,直接结束循环。

我们可以举一些例子来更好地理解它:
当使用break时:

//输出100-200之间所有的素数
#include
int main()
{
   int i=0;
   for(i=100;i<=200;i++)
  {
   int j=0;
   for(j=2;j<=i-1;j++)
     {
        if(i%j==0)//判断i是否为素数;
             break;
        if(j==i-1)
             printf("%d",i);
     }
  }
  return 0;
}

运行结果如下:

当continue替换break时,运行结果如下:
在这里插入图片描述
很显然,运用continue运行出来的结果时不对的,因为在程序读到break时,自动跳出第二个循环语句,到达第一个循环语句继续执行,以此类推。而当程序读到continue时,自动跳出本次循环,继续来到第二个继续执行该循环内的语句,这样不管怎样执行,100-200之间每一个数字都会符合条件,这样就起不到筛选的作用了。所以这里使用了break语句。

你可能感兴趣的:(c语言,算法,c++)