系列文章目录
1、初识C++
http://t.csdnimg.cn/WIT0Z
2、数据类型
http://t.csdnimg.cn/CoURP
3、运算符
http://t.csdnimg.cn/5Q7qc
4、程序流程结构
未完待续
文章目录
前言
本文主讲选择结构,循环结构,跳转结构
一、选择结构
1. if语句
单行if语句
语法:
if (判断条件) {
执行语句
}
#include <iostream>
using namespace std;
int main () {
//单行if
int n = 10;
if (n > 0) {//如果n的值大于10就输出hello!
cout << "hello!" << endl;
}
if (n <= 0) {//如果n小于等于0就输出goodbye!
cout << "goodbye!" << endl;
}
return 0;
}
上述的两条if语句中,n的值只满足>10的条件,所以只输出了hello!
多行if语句
语法:
if (判断条件) {
执行语句
}
else {
执行语句
}
#include <iostream>
using namespace std;
int main () {
//多行if
int n = 10;
if (n <= 0) {//如果n小于等于0就输出hello!
cout << "hello!" << endl;
}
else {//如果不满足n小于等于0这个条件,就输出goodbye!
cout << "goodbye!" << endl;
}
return 0;
}
n的值为10,不满足小于等于0,所以往下执行else中的语句,输出goodbye!
多条件if语句
if (判断条件1) {
执行语句
}
if else (判断条件2){
执行语句
}
else {
执行语句
}
#include <iostream>
using namespace std;
int main() {
//多条件if
int n = 35;
//向下执行,如果有一条条件满足就执行,其他都不执行
if (n >= 30) {
cout << "hello!" << endl;
}
else if (n >= 20) {
cout << "haha!" << endl;
}
else if (n >= 10) {
cout << "hehe" << endl;
}
else {
cout << "goodbye!" << endl;
}
n = 25;
if (n >= 30) {
cout << "hello!" << endl;
}
else if (n >= 20) {
cout << "haha!" << endl;
}
else if (n >= 10) {
cout << "hehe" << endl;
}
else {
cout << "goodbye!" << endl;
}
n = 5;
if (n >= 30) {
cout << "hello!" << endl;
}
else if (n >= 20) {
cout << "haha!" << endl;
}
else if (n >= 10) {
cout << "hehe" << endl;
}
else {
cout << "goodbye!" << endl;
}
return 0;
}
n等于35时,只满足n大于等于30这一条件,所以输出hello!
n等于25时,只满足n大于等于20这一条件,所以输出haha!
n等于5时,既不大于等于30,也不大于等于20和10,所以执行else,输出goodbye!
嵌套if语句
#include <iostream>
using namespace std;
int main() {
//嵌套if
int n = 20;
if (n > 0) {
if (n > 20) {
cout << "haha!" << endl;
}
else {
cout << "hello" << endl;
}
}
else if (n < 0) {
cout << "xixi!" << endl;
}
else {
cout << "goodbye!" << endl;
}
return 0;
}
n为10满足大于0的条件,但在该if语句内不满足大于20这一条件,所以执行该语句的else,输出hello!
2. 三目运算符
语法:表达式1 ? 表达式2 : 表达式3
如果表达式1为真,执行表达式2的语句,反之执行表达式3
#include <iostream>
using namespace std;
int main() {
//三目运算符
int a = 10;
int b = 20;
int c = a > b ? a : b;
//相当于简化版的if/else语句
//如果a > b就返回a,否则返回b
cout << "c = " << c << endl;
//由于三目运算符返回的是变量,所以我们也可以给它返回的变量进行赋值
a > b ? a : b = 30;
cout << "c = " << c << endl;
return 0;
}
a小于b返回b,所以c得到的是b的值
a小于b返回b,所以b被赋值为30
3. switch语句
语法:
switch (整型表达式) {
case 整型表达式1 :
执行语句
case 整型表达式2 :
执行语句
case 整型表达式3 :
执行语句
...........
default :
执行语句
}
#include <iostream>
using namespace std;
int main() {
//switch语句
int n = 0;
cin >> n;//从键盘输入一个数赋值给n
switch (n) {
case 1 :
cout << "hh" << endl;
case 2 :
cout << "haha" << endl;
break;
case 3 :
cout << "hello" << endl;
break;
case 4 :
cout << "xixi" << endl;
break;
default :
cout << "bye" << endl;
}
return 0;
}
当输入1时,只有case 1满足(1 == 1),所以一直向下执行,直到遇到break时停止
当输入3时,只有case 3满足(3 == 3),所以一直向下执行,直到遇到break时停止
当输入0时,不满足case 1 (0 != 1),不满足case 1(0 != 2),不满足case 1(0 != 3),不满足case 1(0 != 4),所有case都不满足,执行default中的语句
注意:
1、case中如果没有break,程序会一直向下执行
2、switch语句中表达式类型只能是整型(字符型也算整型的一种)
二、循环结构
1. while循环语句
语法:
while (循环条件) {
循环语句;
}
#include <iostream>
using namespace std;
int main () {
//while语句
//输出1到10的数字
int n = 1;
while (n <= 10) {
cout << n << endl;
n++;
}
return 0;
}
每次执行循环语句时输出当前n的值之后,将n自增1,直到n不满足小于等于10这个条件就退出
2. do while循环语句
语法:
do {
循环语句;
} while (循环条件)
#include <iostream>
using namespace std;
int main() {
//do while语句
//输出1到10的数字
int n = 1;
do {
cout << n << endl;
n++;
} while (n <= 10);
cout << "\n";
//该语句的特点是无论循环条件如何,至少会执行一次循环语句
//例:
n = 11;
do {
cout << n << endl;
n++;
} while (n <= 10);
return 0;
}
第一次do while循环中,n的起始值为1,每次输出n之后n自增1,大于10停止循环'
第二次do while循环中,n的起始值为11,因为11不满足小于等于10所以就只执行了一次就停止循环
特点:
1、先执行循环语句再判断循环条件
2、至少会执行一次
3.for循环语句
语法:
for (①起始条件; ②循环条件; ③控制语句) {
④循环语句;
}
#include <iostream>
using namespace std;
int main() {
//for循环语句
//输出1到10的数字
for (int i = 0; i < 10; i++) {//从0开始循环,判断是否满足条件,第二次开始每次自增1,直到停止循环
cout << i + 1 << endl;
}
//也可以将起始条件省略
//int i = 0;
//for ( ; i < 10; i++) {
// cout << i + 1 << endl;
//}
//也可以将控制语句放入循环语句中
//int i = 0;
//for ( ; i < 10; ) {
// cout << i + 1 << endl;
// i++;
//}
return 0;
}
执行顺序:
第一次:①②④
第二次:②③④
第三次:②③④
第四次:②③④
……
第十次:②③④
4.嵌套循环
上述三种循环中for较为常用,因此使用for循环举例,其他循环同理
#include <iostream>
using namespace std;
int main() {
//嵌套循环
//输出一个由星号组成的矩形
int length = 5, width = 5;//定义矩形的长和宽
for (int i = 0; i < length; i++) {
for (int j = 0; j < width; j++) {
cout << "*";
}
cout << "\n";//每输出完一行星号就换行
}
return 0;
}
四、跳转语句
1. break语句
break关键字的作用是能够退出当前所在的循环体
#include <iostream>
using namespace std;
int main() {
//以输出矩形为例
//输出一个由星号组成的矩形
int length = 5, width = 5;//定义矩形的长和宽
for (int i = 0; i < length; i++) {
for (int j = 0; j < width; j++) {
if (i == 1) {
break;
}
cout << "*";
}
cout << "\n";//每输出完一行星号就换行
}
return 0;
}
正如输出结果所示,当i为1时这一行的循环退出不执行,所以这一行为空
3. continue语句
continue关键字的作用时跳出本次循环(注意:不是跳出整个循环)
#include <iostream>
using namespace std;
int main() {
//以输出矩形为例
//输出一个由星号组成的矩形
int length = 5, width = 5;//定义矩形的长和宽
for (int i = 0; i < length; i++) {
for (int j = 0; j < width; j++) {
if (j == 1) {
continue;
}
cout << "*";
}
cout << "\n";//每输出完一行星号就换行
}
return 0;
}
当j为1时,就停止本次循环,continue之后的循环语句不执行,因此每一行就都少了一个星号
3. goto语句
执行到goto语句时,会直接跳转到标记再执行
语法:
goto 标记 ;
标记 :
#include <iostream>
using namespace std;
int main() {
//goto语句
cout << "haha" << endl;
goto mark;
cout << "hello" << endl;
mark:
cout << "hehe" << endl;
return 0;
}
执行到goto mark时,直接跳转到mark并执行之后的语句,goto mark到mark之间的语句跳过
mark也可以放到goto mark之前,不过这样会死循环
总结
下篇数组
下下篇函数
下下下篇指针
下下下下篇结构体
🥺