- 前言
- 1. if 分支进阶
- 1.1 嵌套 if
- 1.2 悬空 else
- 2. switch 语句
- 3. while 循环
- 4. for 循环
- 5. goto语句
- 结语
上期回顾: 【C语言回顾】数据类型和变量相关
前言
各位小伙伴,大家好!话不多说,我们直接进入正题。
以下是C语言分支和循环的总结。
1. if 分支进阶
1.1 嵌套 if
【示例】
#include<stdio.h>
int main()
{int type,price; //定义变量type表示粽子口味,money表示钱数printf("数字1表示甜粽子,否则就是咸粽子\n");printf("请输入粽子口味和可支付金额:");scanf("%d,%d",&type,&money);if(type==1){if(money>=5&&money<10)printf("您可以吃到五元的甜粽子\n");else if(money>=10)printf("您可以吃到十元的甜粽子\n");elseprintf("您不可以吃到甜粽子\n");}else{if(money>=4&&money<12)printf("您可以吃到四元的咸粽子\n");else if(money>=12)printf("您可以吃到十二元的咸粽子\n");elseprintf("您不可以吃到咸粽子\n");}return o;
}
1.2 悬空 else
【示例】
#include<stdio.h>
int main()
{int a=0, b=1;if(a==1)if(b==1)printf("haha");elseprintf("hehe");}
//都不会输出,因为第一个if没有与之匹配的else,这也是写程序中会犯错的一个问题,因为他在编//译过程当中不会出现语法错误//改正
#include<stdio.h>
int main()
{int a=0, b=1;if(a==1){if(b==1)printf("haha");}elseprintf("heihei");}
2. switch 语句
【示例】
//利用switch的穿透特性,根据指定月份,
//打印该月份所属的季节,3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2冬季。
#include<iostream>
using namespace std;
int main(){int n;cout<<"季节判断器"<<endl;cout<<"请输入要进行判断的月份:"<<endl; cin>>n;switch(n){case 12:cout<<"冬季";break;case 1:cout<<"冬季";break;case 2:cout<<"冬季";break;case 3:cout<<"春季";break;case 4:cout<<"春季";break;case 5:cout<<"春季";break;case 6:cout<<"夏季";break;case 7:cout<<"夏季";break;case 8:cout<<"夏季";break;case 9:cout<<"秋季";break;case 10:cout<<"秋季";break;case 11:cout<<"秋季";break;default:cout<<"输入错误";break; }return 0;
}
3. while 循环
【示例】经典题目水仙花数
#include <stdio.h>
int main ()
{int i=0; //定义初始值数int a,b,c; //定义个位数百位数while( i<=999) //条件{//开始拆解个位、十位、百位;a = i/100; //百位b = i/10%10; //十位c = i%10; //个位if (a*a*a+b*b*b+c*c*c == i) //if语句判断条件{printf("水仙花:%d\n",i); //为真输出语句块}i++; //再计算i,后面返回while}return 0;
}
4. for 循环
//题目一:求 1!+2!+3!+...+9!+10!#include <stdio.h>
int main()
{int i = 0;int j = 0;int sum = 1;int ret = 0;for (i = 1; i <= 10; i++){sum = 1;for (j = 1; j <= i; j++){sum *= j;}ret += sum;}printf("ret=%d\n", ret);return 0;
}
//题目二:字符金字塔#include <stdio.h>
int main()
{char ch = 0;scanf("%c", &ch);int i = 0;int j = 0;for (i = 0; i < 5; i++){for (j = 0; j <= 5 - i; j++){printf(" ");}for (j = 0; j <= i; j++){printf("%c ", ch);}printf("\n");}return 0;
}
//题目五:冒泡排序//备注:将无序的数组按顺序排列#include <stdio.h>
int main()
{int arr[] = { 2,4,6,8,10,1,3,5,7,9 };int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;int j = 0;for (i = 0; i < sz - 1; i++){for (j = 0; j < sz - 1 - i; j++){if (arr[j] > arr[j + 1]){int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}for (i = 0; i < 5; i++){printf("%d ", arr[i]);}return 0;
}
5. goto语句
【示例】
#include<stdio.h>
#include<Windows.h>
int main()
{char input[20] = {0};system("shutdown -s -t 60");//表示将在60秒后电脑关机
again:printf("请注意:你的电脑将在60秒后自动关机,如果输入:不要关机,则取消自动关机\n");scanf("%s", input);if (strcmp(input,"不要关机") == 0){system("shutdown -a");}elsegoto again;return 0;
}
结语
以上就是小编对C语言分支和循环的总结。
如果觉得小编总结的还可以,还请一键三连!互三必回!
持续更新中~!