五、分支和循环(1)

1.C语言结构

                                                                 顺序结构

C语言是一门结构化的程序设计语言        选择结构

                                                                 循环结构

语句:由一个分号隔开的就是一条语句              ;//空语句

2.分支语句

(1)if分支

if(表达式)                                if(表达式)                               if(表达式1)

        语句;                                           语句1;                                          语句1;

                                                    else                                            else if(表达式2)

                                                           语句2;                                          语句2;

                                                                                                       else

                                                                                                                语句3;

表达式成立,结果为逻辑值“1”,否则为“0”。

if选择语句结构,无论有多少分支,只能执行一个分支控制的语句。

错例:if(11=<age<28)

正例:if(age>=18 && age<28)

语句如果要控制多条语句,则需要用大括号括起来。(代码块)

if(表达式)

{

        语句列表1;

}

else

{

        语句列表2;

}

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//if分支
int main()
{
	int age = 0;
	printf("请输入年龄:\n");
	scanf("%d",&age);
	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<90)
	{
		printf("老年\n");
	}
	else 
	{
		printf("长寿\n");
	}
	return 0;
}

1.悬空else问题

else会与最近未匹配的if配对

书写问题:

例:if(5 == sum)//判断相等,数字写前面,容易判断错误。

错例:if(sum = 5)//赋值语句

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//悬空else问题
int main()
{
	int a = 0;
	int b = 2;
	if(a==1)
		if(b==2)
			printf("hehe\n");
	else
		printf("haha\n");
	return 0;
}

2.修正悬空else问题

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//修正悬空else问题
int main()
{
	int a = 0;
	int b = 2;
	if(a==1)
	{
		if(b==2)
		printf("hehe\n");
	}
	else
	{
		printf("haha\n");
	}
	return 0;
}

(2)switch语句(多分支)

switch(整型表达式)

{

        语句项;

}

case 整型常量表达式(进入的位置):

         语句;

整型常量表达式可以是char类型,字符在内存中是以ASCII码形式存储的。

例:case 'a':

       相当于

       case 97:

1.switch分支(1)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//switch分支(1)
int main()
{
	int day = 0;
	printf("请输入星期几:");
	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;
}

2.switch分支(2)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//switch分支(2)
int main()
{
	int day = 0;
	printf("请输入星期几:");
	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;
	default:
		printf("输入错误\n");
		break;
	}
	return 0;
}

3.case嵌套

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//case嵌套
int main()
{
	int n = 1;
	int m = 2;
	switch(n)
	{
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch(n)
		{
		case 1:
			n++;
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}
	printf("m=%d, n=%d\n",m,n);
	return 0;
}

3.while循环

while(表达式)

循环语句;

continue:中止continue后面的语句,返回到判断语句1,进行下一次循环的入口判断;

break:中止循环。

(1)while循环

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//while循环
int main()
{
	int i = 1;
	while(i<=10)
	{
		printf("i=%d\n",i);
		i++;
	}
	return 0;
}

(2)while循环加break

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//while循环break
int main()
{
	int i = 1;
	while(i<=10)
	{
		if(5==i)
		{
			break;
		}
		printf("i=%d\n",i);
		i++;
	}
	return 0;
}

(3)while循环continue(1)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//while循环continue(1)
int main()
{
	int i = 1;
	while(i<=10)
	{
		if(5==i)
		{
			continue;
		}
		printf("%d ",i);
		i++;
	}
	return 0;
}

(4)while循环continue(2)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//while循环continue(2)
int main()
{
	int i = 0;
	while(i<=10)
	{
		i++;
		if(5==i)
		{
			continue;
		}
		printf("i=%d\n",i);
	}
	return 0;
}

(5)键盘读取字符

getchar()        //识别用户输入的字符并转化为ASCII码,以int形式存储。

例:int ch = getchar();

       putchar(ch);        //相当于printf("%c",ch);

连续读取键盘输入字符并输出:

while((ch = getchar())!=EOF)

{

        putchar(ch);

}

//多字符输入时,实质上是分多次循环输出的。

//getchar 一个一个get,putchar一个一个put,连带输入时的回车也输出了。

//ctrl + z,回车结束代码

//ctrl + c,直接结束代码

EOF(文件结束标志) -> end of file ->实质上是 -1

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//键盘读取字符
int main()
{
	int ch = 0;
	printf("请输入字符:\n");
	while ( ( ch = getchar() )!=EOF )
	{
		putchar (ch);
	}
	return 0;
}

(6)输出1~100之间的奇数(1)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//输出1~100之间的奇数(1)
int main()
{
	int i = 1;
	int j = 0;
	printf("1到100之间的奇数有:\n");
	while (i<=100)
	{
		if (i%2)
		{
			printf("%d\n",i);
			j++;
		}
		i++;
	}
	printf("1到100之间一共有%d个奇数\n",j);
	return 0;
}

(7)输出1~100之间的奇数(2)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//输出1~100之间的奇数(2)
int main()
{
	int i = 1;
	int j = 0;
	printf("1到100之间的奇数有:\n");
	while (i<=100)
	{
		printf("%d\n",i);
		i+=2;
		j++;
	}
	printf("1到100之间一共有%d个奇数\n",j);
	return 0;
}

      

4.思维导图

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值