c语言的流程控制
1、 流程控制
#include <stdio.h>
int main()
{
// 人数
int count = ; if ( count >= )
{
printf("开班!!!\n");
printf("准备机器!!!\n");
} return ;
}
#include <stdio.h>
int main()
{
// 人数
int count = ; if ( count >= )
{
printf("开班!!!\n");
printf("准备机器!!!\n");
}
else
{
printf("不开班!!!\n");
printf("不准备机器!!!\n"); } return ;
}
#include <stdio.h>
int main()
{
int a = ; if (a++ > ) // a == 6
{
printf("A\n");
}
else if (a++ > ) // a == 7
{
printf("B\n");
}
else if (a++ > ) // a == 8
{
printf("C\n");
}
else
{
printf("D\n");
} printf("a的值是%d\n", a); return ;
}
if (a>1)
printf("A\n");
printf("B\n");
不管a取多少B都打印与if语句没关系
#include <stdio.h>
int main()
{
// 1.输入一个整数day
printf("输入一个整数day\n"); // 2.接收输入
int day;
scanf("%d", &day); // 3.判断等级
if (day == ) {
printf("星期一\n");
} else if (day == ){
printf("星期二\n");
} else if (day == ) {
printf("星期三\n");
} else if (day == ) {
printf("星期四\n");
} else if (day == ) {
printf("星期五\n");
} else if (day == ) {
printf("星期六\n");
} else if (day == ) {
printf("星期日\n"); }
return ;
}
春季:3、4、5
夏季:6、7、8
秋季:9、10、11
冬季:12、1、2
#include <stdio.h>
int main()
{
// 1.输入一个整数day
printf("输入一个整数month代表月份"); // 2.接收输入
int month;
scanf("%d", &month); // 3.判断等级
if (month == ||month == ||month == ) {
printf("春季\n");
} else if (month == ||month == ||month == ){
printf("夏季\n");
} else if (month == ||month == ||month == ) {
printf("秋季\n");
} else if (month == ||month == ||month == ) {
printf("冬季\n");
}
return ;
}
A:90~100
B:80~89
C:70~79
D:60~69
E:0~60
#include <stdio.h>
int main()
{
// 1.提示输入
printf("请输入分数值:\n"); // 2.接收输入
int score;
scanf("%d", &score); // 3.判断等级
if (score>= && score<=) { // [90, 100]
printf("A\n");
} else if (score>=) { // [80, 89]
printf("B\n");
} else if (score>=) { // [70, 79]
printf("C\n");
} else if (score>=) { // [60, 69]
printf("D\n");
} else { // (-∞, 59]
printf("E\n");
}
return ;
}
int a = 10;
switch (a) {
case 0:
printf("这是一个0");
break;
case 5:
printf("这是一个5");
break;
case 10:
printf("这是一个10");
break;
default:
printf("什么也不是");
break;
}
break:退出整个switch语句
如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
如果要在case后面定义新的变量,必须用大括号{}包住
#include <stdio.h>
int main()
{
char c = '+';
int a = ;
int b = ;
switch (c) {
case '+':
{
int sum = a + b;
printf("和是%d\n", sum);
break;
} case '-':
{
int minus = a - b;
printf("差是%d\n", minus);
break;
}
}
return ;
}
用switch替代if实现if中的习题
/*
输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
A:90~100 score/10 == 9、10
B:80~89 score/10 == 8
C:70~79 score/10 == 7
D:60~69 score/10 == 6
E:0~60
*/ #include <stdio.h> int main()
{
int score = ; switch (score/) {
case : //
case : // 90+
printf("A\n");
break;
case : // 80+
printf("B\n");
break;
case : // 70+
printf("C\n");
break;
case : // 60+
printf("D\n");
break;
default:
printf("E\n");
break;
} return ;
}
#include <stdio.h>
int main()
{
// 1.先确定需要重复执行的操作 // 2.再确定约束条件 // 定义一个变量记录做的次数
int count = ;
while (count<)
{
++count; if (count% == )
{
// 直接结束这一次循环体,进入下一次循环
continue;
}else if (count == )
{
break;
} printf("做第%d次俯卧撑\n", count);
} return ;
}
只有条件成立才会执行循环体,
运行原理
1.如果一开始条件就不成立,永远不会执行循环体
2.如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......
3. 习题
#include <stdio.h>
int main()
{
// 定义变量保存用户输入的整数
int n = ; // 一定要初始化 while (n <= )
{
// 1.提示输入
printf("请输入一个正整数:\n"); // 2.接收输入
scanf("%d", &n);
} // 3.计算
// (1 + n) * n / 2;
// 定义变量保存和
int sum = ;
int number = ; // 默认被加的数值
while (number < n)
{
number++;
sum += number; // 累加
} printf("%d\n", sum);
return ;
}
*/
#include <stdio.h>
int main()
{
// 1.定义变量存储用户输入的整数
int n = ; // 2.判断n是否为正整数
while (n <= ) {
// 2.1 提示输入
printf("输入一个正整数:\n"); // 2.2 让用户输入
scanf("%d", &n);
} // 3.计算阶乘
int sum = ; // 存储计算结果
int current = ; // 当前要累加的数值
while (current < n) {
current++; // 如果是偶数,就减
if (current % == ) {
sum -= current;
} else { // 如果是奇数,就加
sum += current;
}
} // 4.输出结果
printf("%d\n", sum); return ;
}
第二种 for循环
#include <stdio.h>
int main()
{
int n,sum=;
printf("请输入正整数:");
scanf("%d",&n);
n++;
for(int i=;i<n;i+=)
{
sum=sum+i;
if(i+!=n)
sum=sum-i-; }
printf("sum== %d\n",sum);
return ;
}
记住一类题
/*
题目:计算1~100中所有3的倍数的个数
*/ #include <stdio.h> int main()
{
// 记录3的倍数的个数
int count = ; // 记录当前检查的数值
int number = ; while (number < )
{
number++; // 说明number是3的倍数
if (number% == )
{
count++;
}
} printf("1~100内3的倍数的个数:%d\n", count);
}
while(条件);
最简单的死循环 while(1);
while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点:不管一开始的条件是否成立,至少会执行一次循环体
最好使用while
int i=0;
while(i<0){
i++;
}
int i=0;
do{
i++;
} while(i<0);
例子
#include <stdio.h> int main()
{
int i = ; /*
while (i<0)
{
i++; // 5
}*/ do {
i++; //
} while (i<); printf("i=%d\n", i); return ;
}
for(语句1,条件,语句2)
{
循环体
}
语句1:一般为初始化语句
语句2:一般为增量语句(执行完循环体后再执行的语句)
For循环原理:
1) For循环一开始就会执行语句1(整个for循环只会执行一次)
2) 判断条件是否成立,若成立,则执行一次循环体,然后执行语句2,再次判断条件是否成立,若条件不成立则结束循环
3) 顺序为:(语句1-》判断条件-》循环体—》语句2-》判断条件-》循环体···)
【对比】for和while:
在性能上,for循环稍胜一筹,因为while循环只能使用外部的变量,而for循环可以对变量进行及时回收。
好友列表1
好友1
好友2
好友列表2
好友1
好友2
好友列表3
好友1
好友2
#include <stdio.h>
int main()
{ for (int i = ; i<=; i++)
{
//printf("好友列表%d\n", i + 1);
printf("好友列表%d\n", i); /*
printf(" 好友1\n");
printf(" 好友2\n");
printf(" 好友3\n");
printf(" 好友4\n");
printf(" 好友5\n");*/ for (int j = ; j<=; j++)
{
printf(" 好友%d\n", j);
}
} return ;
}
for (int i = 0; i<5; i++) int a = 10;
*****
****
***
**
*
*
#include <stdio.h>
int main()
{
// 1.定义一个变量存储用户输入的值
int n = ; // 一定要初始化 // 2.判断n值合不合理
while (n <= )
{
// 2.1 提示用户输入正整数
printf("请输入一个正整数:\n"); // 2.2 接收输入的数据
scanf("%d", &n);
} // 3.输出图形
for (int i = ; i<n; i++)// 有多少行
{
//printf("*****\n");
for (int j = ; j<n-i; j++)
{ // 每一行有多少个
printf("*");
} printf("\n");
} return ;
}
#include <stdio.h>
int main()
{
// 一共有多少行
for (int row = ; row<=; row++)
{
// 一共有多少列(其实列数==行数)
for(int column = ; column<=row; column++)
{
// \t是tab键,目的是保持每列之间有相同的距离
printf("%dx%d=%d\t", row, column, row * column);
} // 换行
printf("\n");
}
}
一、选择结构
1.if
1> 结构
if (条件) {
} else if (条件2) {
} else if (条件3) {
} else {
}
2> 特点
* 同一时刻,只有一个大括号里面的代码会被执行
2.switch
1> 结构
switch (数值)
{
case 数值1:
break;
case 数值2:
break;
case 数值3:
break;
default:
break;
}
2> 特点
1> 默认情况下,只有一个case后面的代码会被执行
2> 如果一个case后面没有break,而且这个case成立,就会按顺序执行后面所有case中的语句,直到遇到break为止
3> 如果要在case后面定义一个新的变量,必须用大括号{}包住
二、循环结构
1.while
1> 特点:如果一开始条件不成立,永远不会执行循环体
2.do while
1> 特点:不管条件是否成立,至少会执行一次循环体
3.for
4.选择
1> 一般优先使用for循环
2> 然后再考虑while
3> 最后再考虑do while
c语言的流程控制的更多相关文章
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- 【学习笔记】【C语言】流程控制
顺序结构:默认的流程结构.按照书写顺序执行每一条语句. 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. 循环结构:在给定条件成立的情况下,反复执行某一段代码.
- Go语言的流程控制(条件,选择,控制,跳转,闭包)
1.条件语句: 跟C和python又不同了Go的if -else是这样的 if a<5{ return 0 } else { reutrn 1 } 1.条件不需要用括号括起来 2.左边的花括号必 ...
- C语言-03流程控制
1.选择结构 char c = '+'; ; ; // 如果要在case后面定义新的变量,必须用大括号{}包住 注意变量的作用域的紊乱 if语句不加括号时,也要注意此问题 switch (c) { c ...
- 从头开始-04.C语言中流程控制
分支结构: if语句:当条表达式满足的时候就执行if后面大括号中语句 三种格式: if,if else , if else if else 特点:1.只有一个代码块会被执行 2.若有else那么必有一 ...
- Go语言流程控制(六)
go语言的流程控制主要有if , for和switch. if else(分支结构) go语言的if判断: func main() { score:=65 if score>=90{ fmt.P ...
- java 基础one ---运算符and流程控制
首先java这个了解下java的基础 首先java文件都是以.java结尾的 然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...
- C 碎片四 流程控制
前面介绍了程序中用到的一些基本要素(常量,变量,运算符,表达式),他们是构成程序的基本成分,下面将介绍C语言中流程控制的三种结构:顺序结构.分支结构.循环结构 一.顺序结构 顺序结构的程序设计是最简单 ...
- golang学习笔记(二):流程控制
欢迎访问我的博客和github! 今天咱们把烦人的事情丢一丢,继续来学习go的基础知识. 这篇文章记录go语言的流程控制和更多类型. 流程控制 for Go 只有一种循环结构:for 循环. 基本的 ...
随机推荐
- CMD(SA400 Command)
一.CMD模糊查询: 命令行键入:CRT,WRK,ADD,CPY,DSP,CHG,CLR,FND,RTV*等. 二.CMD分类查询: 命令行键入:GO CMD xxx eg:GO CMD FILE,G ...
- 2017上海QCon之旅总结(上)
本来这个公众号的交流消息中间件相关的技术的.这周去上海参加了QCon,第一次参加这样的技术会议,感受挺多的,所以整理一下自己的一些想法接公众号和大家交流一下. 下面进入正题,从自己参加了的一些分享中挑 ...
- Volley图片加载并加入缓存处理(转自http://blog.csdn.net/viewhandkownhealth/article/details/50957024)
直接上代码 两种方式 ImageView 和NetworkImageView 如有问题或者好的建议.意见 欢迎大家加入技术群(群号: 387648673 ) 先自定义全局Application 获取 ...
- 我的第一个python web开发框架(10)——工具函数包说明(一)
PS:原先是想直接进入功能开发,要用到什么函数时再创建,这样也容易熟悉每个函数的由来和使用方法,但考虑到这样操作,到时会经常在不同文件间切换,不好描述,容易造成混乱,所以还是使用函数库这种方式来说明. ...
- ASP.NET MVC 分页问题
在使用Ajax.Pager进行分页的时候需要注意一下几个方面: 1.一定要引入jquery.unobtrusive-ajax.min.js这个js: 2.一定要在页面中使用注册分页器,注册方法:@{H ...
- JS中处理单个反斜杠(即转义字符的处理)
问题来源:在表单的<input>标签中对输入的字符串进行大写转换.一不小心输入了反斜杠 \ 如下图所示: 输入 chn\ 的时候,在 IE8 下弹出一个js错误.(在实际的项目的表单 ...
- java中的static关键字详解
static对于我们这些初学者在编写代码和阅读代码是一个难以理解的关键字,也是大量公司面试题最喜欢考的之一.下面我就来就先讲述一下static关键字的用法和我们初学者容易误解的地方. static关键 ...
- PHP开发框架之YII框架学习——碾压ThinkPHP不是梦
前 言 JRedu 程序猿是一种慵懒的生物!能少敲一行代码,绝对不会多敲一个字符!所以,越来越多的开发框架应运而生,在帮助我们完成功能的同时,极大程度上也帮我们节省了人力物力,而且也提高了系统的 ...
- Hibternate框架笔记
Hibernate框架 配置 配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE h ...
- Selenium Grid分布式测试入门详解
本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chr ...