c++primer plus 6 读书笔记 第五章 循环和关系表达式

简介: c++primer plus 6 读书笔记 第五章 循环和关系表达式

第5章 循环和关系表达式

for循环、while循环、do~while循环三种循环都执行循环(重复)操作,语法与C语言基本相同。

5.1 for循环

5.1.1 for循环的组成部分

for(initialization; test-expression; update-expression)

body

for循环完成了1.initialization 设置初始值,2.test执行测试3.执行循环体(body)4.更新用于测试的值。

C++特性:可以在for中的初始initialization中声明变量。

for(int i=0; ...;...)

{

}

5.2 while 循环

while(test-condition)

body

while循环和for循环 本质相同,可以完成相同的工作。

5.3 do while

do

body

while(test-condition);

5.4基于范围的for循环(C++11)

对数组或容器类进行操作。

E:

double array[5] ={1.00,2.23,2.1,3.3,4.5};

for (double x : array)

cout<<x<<”/n”;

如果要修改值。使用(&(引用))

for (double &x : array)

 x = x*0.80;

 

5.5 循环和文本输入

5.5.1 cin+while进行条件输入 //存在问题,会跳过空格回车等。

5.5.2cin.get(char) 逐个字符输入,

5.5.3

5.5.4 文件尾条件(EOF)

EOF结束输入,

2. 常见的字符输入做法。

cin.get(char);

while( !cin.fail() )

{

...

cin.get(char)

}

或者是更简单的while(cin.get(ch))

{

...

}

5.5.5另一个cin.get()

ch = cin.get();

cout.put(ch);

 

5.6嵌套循环与二维数组

与C语言类似。

相关文章
|
3月前
|
编译器 C++ 容器
【c++11】c++11新特性(上)(列表初始化、右值引用和移动语义、类的新默认成员函数、lambda表达式)
C++11为C++带来了革命性变化,引入了列表初始化、右值引用、移动语义、类的新默认成员函数和lambda表达式等特性。列表初始化统一了对象初始化方式,initializer_list简化了容器多元素初始化;右值引用和移动语义优化了资源管理,减少拷贝开销;类新增移动构造和移动赋值函数提升性能;lambda表达式提供匿名函数对象,增强代码简洁性和灵活性。这些特性共同推动了现代C++编程的发展,提升了开发效率与程序性能。
110 12
|
8月前
|
算法 编译器 C++
【C++11】lambda表达式
C++11 引入了 Lambda 表达式,这是一种定义匿名函数的方式,极大提升了代码的简洁性和可维护性。本文详细介绍了 Lambda 表达式的语法、捕获机制及应用场景,包括在标准算法、排序和事件回调中的使用,以及高级特性如捕获 `this` 指针和可变 Lambda 表达式。通过这些内容,读者可以全面掌握 Lambda 表达式,提升 C++ 编程技能。
392 3
|
10月前
|
算法 编译器 程序员
C++ 11新特性之Lambda表达式
C++ 11新特性之Lambda表达式
64 0
|
11月前
|
C++ 算法
c++中 lambda 表达式 解析
c++中 lambda 表达式 解析
118 0
c++中 lambda 表达式 解析
|
12月前
|
安全 编译器 C++
C++一分钟之-泛型Lambda表达式
【7月更文挑战第16天】C++14引入泛型lambda,允许lambda接受任意类型参数,如`[](auto a, auto b) { return a + b; }`。但这也带来类型推导失败、隐式转换和模板参数推导等问题。要避免这些问题,可以明确类型约束、限制隐式转换或显式指定模板参数。示例中,`safeAdd` lambda使用`static_assert`确保只对算术类型执行,展示了一种安全使用泛型lambda的方法。
138 1
|
12月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
算法 编译器 C++
C++一分钟之—Lambda表达式初探
【6月更文挑战第22天】C++的Lambda表达式是匿名函数的快捷方式,增强函数式编程能力。基本语法:`[capture](params) -&gt; ret_type { body }`。例如,简单的加法lambda:`[](int a, int b) { return a + b; }`。Lambda可用于捕获外部变量(值/引用),作为函数参数,如在`std::sort`中定制比较。注意点包括正确使用捕获列表、`mutable`关键字和返回类型推导。通过实践和理解这些概念,可以写出更简洁高效的C++代码。
118 13
|
算法 程序员 编译器
C++的四类循环分享
C++的四类循环:Entry or Exit controlled, Ranged-based or For_each
|
C++
C++一分钟之-循环结构:for与while循环
【6月更文挑战第18天】在C++中,`for`循环适合已知迭代次数,如数组遍历;`while`循环适用于条件驱动的未知次数循环。`for`以其初始化、条件和递增三部分结构简洁处理重复任务,而`while`则在需要先检查条件时更为灵活。常见错误包括无限循环和逻辑错误,解决办法是确保条件更新和正确判断。了解两者应用场景及陷阱,能提升代码效率和可读性。
228 6
C++语言的lambda表达式
C++从函数对象到lambda表达式以及操作参数化