c语言的循环和选择语句

这节向大家 介绍分支语句和循环语句;
阿鲤将以以下顺序为大家介绍;
分支语句:
if
switch
循环语句:
while
for
do while
goto语句

if语句

1:if语句的结构

if(表达式)    
	语句:

if(表达式)   
	 语句1; 
 else    
	 语句2;

if(表达式1)  //多分支
	语句1; 
else if(表达式2)  
	语句2;
else    
    	语句3

eg:

#include <stdio.h>
//代码1
int main()
{
    int age = 0;
    scanf("%d", &age);
    if(age<18)
    {
         printf("未成年\n");
    }
}
//代码2
#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if(age<18)
    {
         printf("未成年\n");
    }
    else
    {
         printf("成年\n");
    }
}
//代码3
#include <stdio.h>
int main()
{
    int age
    scanf("%d", &age);
    if(age<18)
    {
         printf("少年\n");
    }
     else if(age>=18 && age<30)
    {
         printf("青年\n");
    }
     else if(age>=30 && age<50)
    {
         printf("中年\n");
    }
     else if(age>=50 && age<80)
    {
         printf("老年\n");
    }
     else
    {
         printf("老的很\n");
    }
     
}

switch 语句;

1:switch语句的结构

switch(n)
{
	case 1;
		语句;
	case2;
		语句;
	defloat;
		语句;
}

eg:(判断星期几)

#include <stdio.h>
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("输入错误");
            break;
    }
    return 0;
}

解释:
break:是的while循环有了真正的分支,把语句划分为不同的部分;
default:如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为适合错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签
default:
写在任何一个case标签可以出现的位置。
当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。
所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句。
编程好习惯
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。

while循环:

1:while循环的结构

  while(判断)
    {
    	语句;
    }

2:while循环执行图:
在这里插入图片描述

eg:(在屏幕上打印一到十)

#include <stdio.h>
int main()
{
  int i = 1;
  while(i<=10)
  {
    printf("%d ", i);
    i = i+1;
  }
  return 0;
}

3: while循环的深入
while循环中的break和continue
break:其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久
终止循环的。
eg:

#include <stdio.h>
int main()
{
   int i = 1;
   while(i<=10)
   {
       if(i == 5)
       break;
       printf("%d ", i);
       i = i+1;
   }
   return 0;
}

输出结果:1,2,3,4

continue:continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断

eg:(这个循环会陷入死循环 ps:i一直等于5)

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i = i + 1;
	}
	system("pause");
	return 0;
}

for循环:

1:for循环的结构

for(表达式1;表达式2;表达式3)
 循环语句;

解释:表达式1 表达式1为初始化部分,用于初始化循环变量的。 表达式2 表达式2为条件判断部分,用于判断循环时候终止。 表达式3 表达式3为调整部分,用于循环条件的调整。
执行的顺序为:
1)第一次循环,即初始化循环。
首先执行表达式1(一般为初始化语句),再执行表达式2(一般为条件判断语句),判断表达式1是否符合表达式2的条件,如果符合,则执行表达式4,否则,停止执行,最后执行表达式3.
2)下次的循环:
首先执行表达式2,判断表达式3是否符合表达式2的条件;如果符合,继续执行表达式4,否则停止执行,最后执行表达式3.如果往复,直到表达式3不再满足表达式2的条件。

2:for循环执行图

在这里插入图片描述
eg:(在屏幕上打印1-10)

#include <stdio.h>
int main()
{
 int i = 0;
 //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
 for(i=1; i<=10; i++)
 {
 printf("%d ", i);
 }
 return 0;
}

ps:现在我们对比一下for循环和while循环,可以发现在while循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。所以,for循环的风格更胜一筹。 for循环使用的频率也最高。

break和continue在for循环中
我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。 但是还是有些差异:
eg:

//代码1
#include <stdio.h> //与while一样
int main()
{
  int i = 0;
  for(i=1; i<=10; i++)
  {
    if(i == 5)
    break;
    printf("%d ",i);
  }
  return 0;
}
//代码2,不会陷入死循环,打印1 2 3 4 6 7 8 9 
#include <stdio.h>
int main()
{
   int i = 0;
   for(i=1; i<=10; i++)
   {
     if(i == 5)
     continue;
     printf("%d ",i);
   }
   return 0;
}

goto语句:

C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。
从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳
出两层或多层循环。
eg:(一个关机程序)

#include <stdio.h>
int main()
{
    char input[10] = {0};
    system("shutdown -s -t 60");
again:
    printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    scanf("%s", input);
    if(0 == strcmp(input, "我是猪"))
   {
        system("shutdown -a");
   }
    else
   {
        goto again;
   }
    return 0;
}

查看shutdown命令扩展,请点击这里

好啦,以上就是我们这节的所有内容啦,有错误之处,请提出来;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值