您现在的位置是:首页 >其他 >C++系列八:选择、循环与转向网站首页其他
C++系列八:选择、循环与转向
1. 选择语句
选择语句使用条件来确定程序将执行哪些代码。在C++编程中,选择语句有多种类型,包括if语句、switch语句和三元运算符。
(1)if
语句
if
语句是C++编程中最常见的选择语句之一,语法如下:
if (condition)
{
statement;
}
其中,condition是一个布尔表达式,如果它的值为true
,则执行statement。如果该条件为false
,则程序跳过if语句并执行后续的代码。
if
语句也可以带有一个可选的else
子句,以便在条件不满足时执行其他语句。它的语法如下:
if (condition)
{
statement1;
}
else
{
statement2;
}
这种情况下,如果condition为true,则执行statement1,否则执行statement2。
适用场景:
- 控制代码的执行流程
- 根据条件执行不同的代码块
e.g.
#include <iostream>
using namespace std;
int main()
{
int num = 5;
if (num > 0)
{
cout << "Number is positive." << endl;
}
else if (num < 0)
{
cout << "Number is negative." << endl;
}
else
{
cout << "Number is zero." << endl;
}
return 0;
}
这个程序将根据变量num的值输出不同的消息。
(2)switch
语句
switch
语句是另一种常见的选择语句,它基于一个表达式的值来选择要执行的代码块,语法如下:
switch (expression)
{
case value1:
statement1;
break;
case value2:
statement2;
break;
default:
statement3;
}
这种情况下,表达式的值将与每个case的value进行比较。如果匹配到了一个case值,则执行相应的statement,并跳出switch语句。如果没有匹配到任何值,则执行default语句块(可选)。
适用场景:
- 根据不同的条件执行不同的代码块
- 优化if-else语句的结构和代码风格
e.g.
#include <iostream>
using namespace std;
int main()
{
int num = 2;
switch (num)
{
case 1:
cout << "Monday" << endl;
break;
case 2:
cout << "Tuesday" << endl;
break;
case 3:
cout << "Wednesday" << endl;
break;
default:
cout << "Invalid day" << endl;
break;
}
return 0;
}
这个程序将根据变量num的值输出对应的星期几。
(3)三元运算符
三元运算符是一种简单的选择语句,它可用于根据条件选择两个不同的值,语法如下:
condition ? value1 : value2;
如果条件为true
,则该语句将返回value1,否则返回value2。
适用场景:
- 简单的单行条件判断
- 优化if-else语句的结构和代码风格
e.g.
#include <iostream>
using namespace std;
int main()
{
int num = 3;
string message = (num > 0) ? "Number is positive." : "Number is negative or zero.";
cout << message << endl;
return 0;
}
这个程序将根据变量num的值输出对应的消息。
2. 循环语句
C ++中的循环语句包括for
、while
和do while
循环,可用于执行一系列重复操作,直到某个条件不再满足为止。
每种循环结构都有其独特的优点和适用场景,并可根据情况进行调整以实现灵活的循环控制。
一、for
循环
for
循环是C++中最基本的重复结构之一,语法如下:
for (init; condition; increment)
{
// 循环体
}
其中,init是循环初始化表达式,用于初始化循环计数器;condition是循环条件表达式,只要它的值为真,循环就会继续执行;increment是循环更新表达式,用于更新循环计数器。循环体就是要重复执行的代码块。
for
循环的优点是易于掌握,可以通过调整循环初始化表达式、循环条件表达式和循环更新表达式来实现灵活的循环控制。但是,对于一些复杂的循环控制,for
循环可能会变得难以管理。
适用场景:
- 处理具有固定数量的元素的数据,例如数组或列表
- 执行需要执行特定次数的操作
e.g.
#include <iostream>
using namespace std;
int main()
{
int i, n;
cout << "Enter a positive integer: ";
cin >> n;
for (i = 1; i <= n; i++)
{
cout << i * i << " ";
}
return 0;
}
这个程序接受一个正整数n,并打印出1到n的平方。
(2)while
循环
while
循环是一种更加通用的重复结构,语法如下:
while (condition)
{
// 循环体
}
这里的condition是一个布尔表达式,如果它的值为真,则继续执行循环体中的代码块。在循环体执行完毕后,条件被重新评估,如果它仍然为真,则再次执行循环体。
和for
循环相比,while
循环更加灵活
适用场景:
- 执行需要满足特定条件的操作
- 处理动态大小的数据集
e.g.
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 10)
{
cout << i << " ";
i++;
}
return 0;
}
这个程序将打印出从0到9的数字。
(3)do while
循环
do while
循环是C++中另一种重复结构,语法如下:
do
{
// 循环体
} while (condition);
和while
循环相比,do while
循环保证循环体至少会执行一次,因为while
条件是在循环体执行完后测试的。
适用场景:
- 执行至少需要执行一次的操作
- 处理从用户或其他来源获取信息的情况
e.g.
#include <iostream>
using namespace std;
int main()
{
int i = 0;
do
{
cout << i << " ";
i++;
} while (i < 10);
return 0;
}
这个程序将打印出从0到9的数字,包括0和9。
3. 转向语句
C++中的转向语句是用来改变程序执行顺序的一种语句,当程序遇到转向语句时,它会跳过某些代码或者跳转到指定的代码位置执行。
C++中的转向语句包括goto
语句、break
语句、continue
语句和return
语句。每种语句都有其独特的优点和适用场景,并且可以在编程中实现更高效、更灵活的控制流。
(1)goto
语句
goto
语句是C++中最基本的转向语句之一,语法如下:
goto label;
//...
label: statement;
其中,label是标签名,它应该唯一并在同一函数中定义,statement是要执行的语句。
当程序执行到goto
语句时,它会跳到label处执行相应的语句。因为goto
语句具有非常大的灵活性,所以它可以用来解决某些问题,但如果使用不恰当,也可能会导致代码难以理解和维护。
适用场景:
- 在嵌套结构中跳出循环
- 在函数中实现错误处理
e.g.
#include <iostream>
using namespace std;
int main()
{
int i = 0;
loop:
cout << i << " ";
i++;
if (i < 10)
goto loop;
return 0;
}
这个程序将打印出从0到9的数字。
(2)break
语句
break
语句是另一种用于转向控制流的语句,语法如下:
while (condition)
{
// 循环体
if (condition)
{
break;
}
}
当遇到break
语句时,程序将立即跳出语句块并执行该语句后面的代码。
适用场景:
- 跳出循环
- 在多层嵌套结构中跳出指定的结构
e.g.
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 10)
{
cout << i << " ";
i++;
if (i == 5)
break;
}
return 0;
}
这个程序将打印出从0到4的数字。
(3)continue
语句
continue
语句也是用于跳过某些代码的语句,语法如下:
while (condition)
{
// 循环体
if (condition)
{
continue;
}
// 其他代码
}
当遇到continue
语句时,程序将跳过它后面的代码,然后开始下一次循环迭代。
适用场景:
- 跳过当前循环迭代
- 在多层嵌套结构中跳过指定的结构
e.g.
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 10)
{
i++;
if (i == 5)
continue;
cout << i << " ";
}
return 0;
}
这个程序将打印出从1到10的数字,但不包括数字5。
(4)return
语句
return
语句也是一种转向语句,它可用于从函数中返回,并提供一个可选的返回值,语法如下:
return expression;
其中,expression是要返回的值。
适用场景:
- 从函数中返回
- 向调用函数返回值
e.g.
#include <iostream>
using namespace std;
int square(int x)
{
return x * x;
}
int main()
{
int result = square(5);
cout << result << endl;
return 0;
}
这个程序将计算并打印出数值25。
4. 总结
20年前学习C++语言的幼稚记录