首页 > 代码库 > 黑马程序员----流程控制(顺序结构、选择结构、循环结构)
黑马程序员----流程控制(顺序结构、选择结构、循环结构)
一、顺序结构
默认的流程结构,按照书写的顺序执行;
二、选择结构
概念:对给定的条件进行判断,根据判断结果来决定执行那一段代码;
1. if语句
if语句的基本使用
/* 1.if的第一种结构 if(条件) { 语句1; 语句2; ...... } 2.if的第2种结构 if(条件1) { 语句1; 语句2; ...... } else { 语句3; 语句4; ....... } 3.if的第3种结构(按顺序判断条件,遇到某个条件成立就执行其代码(也说明该条件前的所有条件都不成立),执行完不再对条件进行判断) if(条件1) { 语句1; 语句2; ....... } else if(条件2) { 语句3; 语句4; ....... } else if(条件3) { 语句5; 语句6; ....... } else { // 前面条件都不成立就来到这里 语句7; 语句8; ....... } 4.if的第4种结构 if(条件) 语句1; // 条件成立就执行语句1 语句2; // 语句2与if语句没有关系,必然执行 ....... */#include <stdio.h>int main(){ /* // 练习1 int count = 40; if (count > 50) { printf("开班!!!\n"); printf("准备机器!!!\n"); } else { printf("不开班!!!\n"); printf("不准备机器!!!\n"); }*/ /* // 练习2 int a = 5; if (a==10) { printf("a=10\n"); } else if(a==5) { printf("a=5\n"); } else if(a==3) { printf("a==3\n"); } else { printf("a=其他值\n"); }*/ /* //练习3 int a = 10; if (a++ > 10) // 先将a=10 与 10 比较判断(假),再加1 即 a=11 { printf("A\n"); } else if(a++ > 5) // 此时a=11,先将a=11 与 5 比较判断(真,下面的条件就不再进行运行、判断,) 再让a加1 即a=12 { printf("B\n"); } else if(a++ > 3) // 由于条件2成立了,一下代码不再进行运行、判断,a不会再进行加1操作 { printf("C\n"); } else { printf("D\n"); } printf("a的值是%d\n", a); // 运行结果为:B a的值是12 */ // 练习4 int a = 10; if(a > 11) // 条件没有成立,不会执行哈哈哈哈,但还是会执行嘿嘿嘿嘿 printf("哈哈哈哈\n"); printf("嘿嘿嘿黑\n"); // 此语句与if语句没有关系,必然会执行 // 运行结果为: 嘿嘿嘿嘿 return 0;}
if语句的陷阱
陷阱一:比较大小时,常量放在左边,变量放在右边
int a = 10431;if (a == 0) // 如果少写了一个 = ,即:a = 0; 相当于赋值操作,而且不会报错,没有提醒!!!{ 语句1;}else{ 语句2;}/* 总结:比较大小时,常量放在左边,变量放在右边即:if (0 == a) 如果少写一个 = ,即:0 = a; 此时由于常量不能被赋值,会报错提醒!!!*/
陷阱二:注意赋值运算符 = 不要写成了 ==
int a = 10;a = 15; // 如果多写了一个 = ,即:a == 15; 此时有一个警告,并不会报错,但是并没有对a再次赋值为15,a还是等于10;printf("%d", a);/*总结:注意赋值运算符 = 不要写成了 == ,后果很严重!*/
陷阱三:if后面不要随便写分号
if (5 > 6); // 多写了一个分号; 导致大括号里面的代码成了一个代码块,必然会执行{ printf("A");}// 总结:if后面不要随便写分号 ;
陷阱四:作用域问题
if (10 > 6);{ int a = 5; // 变量a的作用域为if后面的大括号内} // 变量a再内存中被销毁了printf("%d", a);// 解释:作用域问题:a只在大括号内有效,执行到printf函数时,变量a已经被回收,就会报错:(error: use of undeclared identifier ‘a‘),使用了未定义的标识符;
陷阱五:作用域不明确
#include <stdio.h>
int main()
{
if (10 > 6) int a = 5;
}// 解释:从整个代码来看,变量a是属于main函数,但是对于if语句来讲,变量a的作用域只在if语句内有效,会造成变量a的作用域不明确问题;// 报错信息:error: expected expression// 总结:如果要在if语句后面的代码中定义新的变量,必须用大括号扩住
黑马程序员----流程控制(顺序结构、选择结构、循环结构)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。