分支与循环语句

注:1.八进制:以0开头,由0~7组成的数。如,0126,050000

输出格式:   printf("0%o",1234);
	2..十进制:除表示正负的符号外,以1~9开头,由0~9组成。如,128,+234,-278
	3.printf可以使用格式控制串“%md”输出域宽为m的十进制整数。
	4.十六进制:以0X或0x开头,由0~9,A~F或a~f 组成。如,0x12A,0x5a000
输出格式:		printf("0X%X",1234);

C中的三种结构:1.顺序结构 2.选择结构 3.循环结构

分支语句

if

语法结构:

if(表达式)
语句; 

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

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

if默认只控制之后的一条语句,所以想控制两行以上得加{}
非0 就是真;0 就是假
return 之后的代码不再执行

注: 良好的代码风格《高质量C/C++编程》
常量和变量比较相等时,常量放在左边

swicth

switch(整型表达式) 
{   
 语句项;
 语句项;
 语句项;
 }

语句项:		case 整形常量表达式: 
   		 	语句;

注:在switch语句中我们没法直接实现分支,搭配break使用才能实现真正的分支。

//输出星期
int main()
{
	int day = 0;
	scanf("%d", &day);
	
	switch (day)
	{
	case 1:
		printf("星期1\n");
		break;
	case 2:
		printf("星期2\n");
		break;
	case 3:
		printf("星期3\n");
		break;
	case 4:
		printf("星期4\n");
		break;
	case 5:
		printf("星期5\n");
		break;
	case 6:
		printf("星期6\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	}

	//if (1 == day)
	//{
	//	printf("星期1\n");
	//}
	//else if (2 == day)
	//{
	//	printf("星期2\n");
	//}
	//else if (3 == day)
	//{
	//	printf("星期3\n");
	//}
	......
	
	return 0;
}
//1. 输入1 - 5输出的是“weekday”;
//2. 输入6 - 7输出“weekend”
int main()
{
    int day = 0;
    switch (day)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
   default: //default子句用于不能匹配的时候
       printf("输入有误,请输入1-7\n"); 
       break;
    }
    return 0;
}

break语句的实际效果是把语句列表划分为不同的部分。

循环语句

while

while 语法结构:

while(表达式) 
{
	循环语句;
}

在屏幕上打印1-10的数字。

int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ", i);
		i++;
	}

	return 0;
}

注: getchar -从键盘获取字符(先从输入缓冲区获取,没有之后再等待键盘输入),scanf同理
putchar -把字符打印到屏幕
gets() --获取字符可以读取空格
scanf("%s", )–获取字符只能读取到空格前

for

语法

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

表达式1 表达式1为初始化部分,用于初始化循环变量的。 表达式2 表达式2为条件判断部分,用于判断 循环时候终止。 表达式3 表达式3为调整部分,用于循环条件的调整。

int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}
	return 0;
}
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		if (5 == i)
//			//break;
//			continue;
//		printf("%d ", i);
//	}
//	return 0;
//}
//int main()//死循环
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i=5)
//			printf("%d ", i);
//	}
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//			printf("%d ", i);
//
//		i++;
//	}
//	return 0;
//}
//int main()
//{
//	int arr[10] = { 0 };//0-9
//	int i = 0;
//	for(i= 0;i<10;i++)//前闭后开
//	{
//		scanf("%d", &arr[i]);
//		
//	}
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d", arr[i]);
//
//	}
//
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	//初始化判断调整均省略
//	//1.可以省略
//	//2.判断省略,意味着判断恒为真
//	//3。尽量不要省略
//	for (;;)
//	{
//		printf("hehe\n");
//	}
//
//	return 0;
//}

do while

// do while循环 --至少执行一次

//int main()
//{
//	int i = 1;
//	
//	do 
//	{
//		if (i == 5)
//			//break;// 1234
//			continue;// 1234死循环
//
//		printf("%d ", i);
//		i++;
//	} while (i <= 10);
//	
//	return 0;
//}

习题

//计算N的阶乘

//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	int ret = 1;
//	for (i = 1; i <= n; i++)
//	{
//		ret = ret * i;
//	}
//	printf("%d", ret);
//	
//	return 0;
//}
//int main()
//{
//	int n = 0;
//	//scanf("%d", &n);
//	int i = 0;
//	int ret = 1;
//	int sum_ret = 0;
//
//	for (n = 1; n <= 10; n++)
//	{
//		ret = ret * n;		
//		sum_ret = sum_ret + ret;
//	}
//
//	printf("%d", sum_ret);
//
//	return 0;
//}

//打印有序数组指定数字下标

//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	//int i = 0;
//	//int k = 7;
//	//int sz = sizeof(arr) / sizeof(arr[0]);
//
//	//for (i = 0; i < sz; i++)
//	//{
//	//	if (arr[i] == k)
//	//	{
//	//		printf("找到了,下标为:%d\n",i);
//	//		break;
//	//	}
//	//}
//	//if (i == sz)
//	//{
//	//	printf("找不到");
//	//}
//
//
//	//二分查找(折半查找),效率提升
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int left = 0;
//	int right = sz - 1;
//	int k = 5;
//	while (left<=right)
//	{
//		int mid = (left + right) / 2;
//		if (arr[mid] > k)
//		{
//			right = mid - 1;
//
//		}
//		else if (arr[mid] < k)
//		{
//			left = mid + 1;
//		}
//		else
//		{
//			printf("找到了,下标为:%d\n", mid);
//			break;
//		}
//	}
//	if (left > right)
//	{
//		printf("找不到");
//	}
//	
//	return 0;
//}

//显示hello,world

#include<Windows.h>
#include<string.h>

//int main()
//{
//	char arr1[] = "hello world!!!!!!!";
//	char arr2[] = "##################";
//	int  len = strlen(arr1);
//	
//	int left = 0;
//	int right = len - 1;
//
//	while (left<=right)
//	{
//		arr2[left] = arr1[left];
//		arr2[right] = arr1[right];
//		printf("%s\n", arr2);
//		Sleep(1000);//1000毫秒=1秒
//		system("cls");//system为库函数,用来执行系统命令
//		left++;
//		right--;
//	}
//	printf("%s\n", arr2);
//	
//	return 0;
//}

//登录程序

//#include<string.h>
//int main()
//{
//	int i = 0;
//	char password[20] = { 0 };
//	for (i = 0; i < 3; i++)
//	{
//		printf("输入密码:>");
//		scanf("%s", password);//数组不用取地址&,数组名本身就是地址
//		if (strcmp(password , "abcdef")==0)//比较字符串 http://cplusplus.com/reference/cstring/strcmp/?kw=strcmp
//		{
//			printf("登录成功\n");
//				break;
//		}
//		else
//		{
//			printf("密码错误\n");
//		}
//
//	}
//	if (3 == i)
//	{
//		printf("退出程序\n");
//	}
//	
//	return 0;
//}

goto语句

//goto语句 不能跨函数跳转

//int main()
//{
//again:
//	printf("hehe\n");
//	goto again;
//
//	return 0;
//}

//关机程序

//程序运行起来就倒计时关机,1分钟内,输入:我是猪,就取消关机

#include <string.h>

#include <stdlib.h>



//int main()

//{

//	char input[20] = { 0 };

//	system("shutdown -s -t 60");

//

//again:

//	printf("请注意,你的电脑在1分钟内关机,如果输入:我是猪,就取消关机\n");

//	scanf("%s", input);

//	if (strcmp(input, "我是猪") == 0)

//	{

//		system("shutdown -a");

//	}

//	else

//	{

//		goto again;

//	}

//	return 0;

//}

//



```c
//int main()

//{

//	char input[20] = { 0 };

//	system("shutdown -s -t 60");

//

//	while (1)

//	{

//		printf("请注意,你的电脑在1分钟内关机,如果输入:我是猪,就取消关机\n");

//		scanf("%s", input);

//		if (strcmp(input, "我是猪") == 0)

//		{

//			system("shutdown -a");

//			break;

//		}

//	}

//	return 0;

//}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值