C++课堂整理--第二章内容

提前声明:

本文内容为华北水利水电大学研究生C++课程,如有 侵权请告知,作者会予以删除

1程序控制结构

语句是程序的基本语法成分。程序设计语言的语句按功能可以分成三类:声明语句    指示编译器分配内存,或者提供程序连接信息。操作语句    描述对数据的处理。控制语句    用于控制程序的执行流程。

所有程序都只能包含三种控制结构:         顺序结构、选择结构和循环结构

1.1选择结构

1.1.1条件运算表达式:if语句

1>.   if表达式语句

2>.   if表达式语句1

        else  语句2

3>.   if表达式语句1

        else if表达式语句1

         else  语句2

if else 的配对关系:C++规定,else 总是与它接近的if 配对

经典案例:大小写转换

#include <iostream>
using namespace std ;
int main()
{  char ch;cout << "ch = ";cin >> ch ;if ( ch >= 'A' && ch <= 'Z' )  ch += 32 ;cout << ch << endl ;
}

 1.1.2switch语句

switch ( 表达式 )

    { case  常量表达式 1  :  语句 1;break;

       case  常量表达式 2  :  语句 2;break;

       case  常量表达式 n  :  语句 n;break;

       default  :  语句 n+1 }

default 子句可选。缺省时,没有匹配值 switch 语句为空

csae default 仅起语句标号作用,不能控制程序流程,一旦选中一个case分支后,将继续往下顺序执行语句序列,添加 break 语句可以跳出 switch 语句体,达到控制流程作用。

1.2循环结构

1.2.1while语句

while( 表达式循环体 ;

do  循环体   while( 表达式 );

#include <iostream>
using namespace std ;
int main() 
{ cout << "Please enter list of numbers" << endl;int ValuesProcessed = 0;double ValueSum = 0;double Value;while (cin >> Value) // 键入 Ctrl-Z 结束{ ValueSum += Value;++ValuesProcessed;}if (ValuesProcessed > 0) { double Average = ValueSum / ValuesProcessed;cout << "\nAverage: " << Average << endl;}else  cout << "No list to average" << endl;
}

 经典例题:求最大公约数

#include <iostream>
using namespace std ;
int main()
{ int m , n , a , b , r ;cout << "input two integers :\n" ;cout << "? " ;  cin >> m ;cout << "? " ;  cin >> n ;if ( m > n) { a = m ; b = n ; }	else { a = n ; b = m ; }r = b ;while ( r != 0 ){ r = a % b ;a = b ;	b = r ;}cout << m << " and " << n << " maximal common divisor is : " << a << endl ;
} 

 

1.2.2for语句

for ( 表达式1; 表达式2 ; 表达式3  )

  循环体 ;

执行顺序:

1) 先执行“表达式1”。

2) 再执行“表达式2”,如果它的值为真(非0),则执行循环体,否则结束循环。

3) 执行完循环体后再执行“表达式3”。

不同形式的for语句结构

 经典例题求菲波那切数列:

//Fibonacci 数列:0,1,1,2,3,5,8,13,21,34,……
//	f0 = 0
//	f1 = 1
//	fn = fn-1 + fn-2	( n >= 2 )
#include <iostream>
using namespace std ;
int main()
{  int n, i, a0, a1 ;cout << "n = " ;cin >> n ;a0 = 0 ;  a1 = 1 ;cout << a0 << "  "<< a1 << "  ";for ( i = 2; i <= n/2 ; i ++ ){ a0 = a0 + a1 ;a1 = a1 + a0 ;cout << a0 << "  "<< a1 << "  ";if ( i % 5 == 0 )  cout << endl ;//每10个数进行换行一次 }cout<< (i-1)*2<<endl;if ( n > (i-1)*2 )  cout << a0+a1 << endl ;// n为奇数,输出最后一项
} 

 

 1.2.3嵌套循环

一个循环语句的循环体内又包含循环语句,称为嵌套循环

 1.3判断表达式

输出1100之间的奇数

  for ( int i = 1 ;  i <= 100 ;  i ++ )

           if ( i % 2 ) cout << i << ' \t ' ;

判断a是否等于b

  if ( a - bcout << a << " != " << b << endl ;

         else  cout << a << " == " << b << endl ;

一个点不在坐标轴原点上

  while ( x && y ) ……

1.4转向语句

break语句

    无条件地结束switch语句,或循环语句,转向执行语句块的后续语句

continue语句

    用于循环体中,终止当前一次循环

while  (  E1 ){   语句 1;  if  ( E2 )  break  ; 语句 2;}  break终止while循环

while ( E1 ){   语句 1; if ( E2continue ;语句 2;}  continue跳过语句2,重新执行 while语句

goto语句

    无条件转向语句,与标号语句配合使用,一般形式为:

     goto  标号

    标号 语句

     int  i =1,  sum = 0 ;

     loop :  if  ( i < = 100 )

               { sum += i ++;

                  goto  loop ;}

    cout << sum ;  

2.第二章小结

 C++构成选择结构的条件语句有if语句和switch语句。

    if 语句适用于条件判断比较复杂的分支结构。嵌套if语句采用就近匹配的原则。  

    用括号{ }改变复合语句结构,可以改变ifelse的匹配关系。

    switch语句根据一个表达式的不同可能值决定选择执行,适用于条件判断比 

    较简单的多路选择。

循环结构有whlie语句、do_while 语句和 for 语句。

    while语句和do_while语句主要用于条件循环。

    for语句是C++中很灵活的循环语句,既可以用于控制次数循环,也可以用于条

    件循环。

转向语句是程序的流程控制的补充机制。C++的转向语句主要有:break、

    continuegoto语句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的电脑 III

耳机用的是飞利浦的&#xff0c;和上学那时候的差不多 老的那个睡觉的时候压碎了&#xff0c;我胖了 然后去找音箱 网店&#xff0c;专卖店&#xff0c;电脑城&#xff0c;走了一遍又一遍 没个看的上的 一个月以后&#xff0c;终于决定买飞利浦那个了 白色的&#xff0c;和整个…

学习select(函数)

select系统调用是用来让我们的程序监视多个文件句柄(file descrīptor)的状态变化的。程序会停在select这里等待&#xff0c;直到被监视的文件句柄有某一个或多个发生了状态改变。 文件在句柄在代码都是从标准输入读入9个字节字符&#xff1a; #include <stdio.h> #in…

mybatis删除成功返回0_你还在用分页?试试 MyBatis 流式查询,真心强大!

转自&#xff1a;捏造的信仰segmentfault.com/a/1190000022478915基本概念流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器&#xff0c;应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。如果没有流式查询&#xff0c;我们想要从数据库取 1000…

C++程序设计--第三章内容

提前声明&#xff1a; 本文内容为华北水利水电大学研究生C课程&#xff0c;如有 侵权请告知&#xff0c;作者会予以删除 1.函数 函数作用 —— 任务划分&#xff1b;代码重用定义形式 类型 函数名 &#xff08; 形式参数表&#xff09;{语句序列}调用形式 函数名&#x…

PHP验证变量类型

isset() : //变量是否已经声明empty(): //变量是否为空defined(): //常量是否已经定义 de…

Linux TCP server系列(5)-select模式下的单进程server

目标&#xff1a; 让服务器退化为单进程模式&#xff0c;但是利用select来提升性能 思路&#xff1a; &#xff08;1&#xff09;服务器 传统的单进程服务器一旦accept了客户端的TCP连接后&#xff0c;就转入客户请求的处理&#xff0c;处理完成后才能再一次的调用…

替换元素_80%的前端会答错的问题:lt;imggt;是什么元素?

前言某天晚上&#xff0c;和几个朋友去撸串&#xff0c;突然就聊到了面试&#xff0c;都在感叹现在的面试题太变态了&#xff0c;其中一个突然很神秘的问我&#xff1a;“你写前端这么久了&#xff0c;那你知道 <img> 是什么元素吗&#xff1f;”于是我结合平时写页面的经…

用指针变量访问数组

一维指针 地址值 a 相当于 & a[ 0 ] a 1 相当于 & a[ 1 ] a 2 相当于 & a[ 2 ] a i 相当于 & a[ i ] 元素值 a [ 0 ] * a a [ 1 ] 相当于 * ( a 1 ) a [ 2 ] 相当于 * ( a 2 ) a [ i ] 相当于 * ( a i ) 二维 用指…

LEX和YACC的使用(例子)

1、简单C语言的词法分析程序;%{#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h> %} digit [0-9]letter [A-Za-z]other_char [!-\[-~]id ({letter}|[_])({letter}|{digit}|[_])*string …

C++排序法

选择排序 // sort void sort ( int x[] , int n ) { int max , t ;for ( int i 0 ; i < n-1 ; i ) //对数组排序{ t i ;for ( int j i 1 ; j < n ; j ) //寻找最大元素if ( x [ j ] > x [ t ] ) t j ;if ( t ! i ){ max x [ i ] ; //交换…

Linux TCP server系列(6)-select模式下的多线程server

目标&#xff1a; 修改上一篇的select模式下的server&#xff0c;让它使用多线程来处理客户端请求&#xff08;多进程的模式已经在上篇中加了注释&#xff09;。 思路&#xff1a; &#xff08;1&#xff09;服务器 我们已经在之前的客户端模型多个并发用户的过程中使用过多线程…

单选按钮_PerlTk教程之按钮Button、复选按钮Checkbutton、单选按钮Radiobutton(附完整代码)...

《Perl-Tk教程之按钮Button、复选按钮Checkbutton、单选按钮Radiobutton》Perl-Tk中有三种不同形式的按钮组件可供选择&#xff0c;它们分别是按钮(Button), 复选按钮(Checkbutton), 和单选按钮(Radiobutton)&#xff0c;如下图所示&#xff1a;这三种按钮看起来是不同的&#…

致读者

有很多理由说明你应该读这个手册&#xff0c;然而也有这样的疑问&#xff1a;为什么要舍近求远&#xff0c;而不是下载一个存在的发行版&#xff1f; 一个很重要的理由是这可以帮助你里里外外的更加了解Linux的工作原理。 另一个关键因素是你可以更多的控制你的系统&#xff0…

制作.ppm格式Linux内核启动logo

在做的产品中&#xff0c;采用默认的小企鹅做logo肯定是不行的&#xff0c;所以一定要替换个像样的企业logo图片&#xff01; 以前做过Linux启动Logo&#xff0c;时间太久&#xff0c;给忘了&#xff0c;所以再从新研究下。 经过在网上的搜索&#xff0c;和实际验证&#xff0c…

在恰当的地方使用MongoDB的WriteConcern.SAFE参数

首先列一下WriteConcern的几种抛出异常的级别参数&#xff1a; WriteConcern.NONE:没有异常抛出WriteConcern.NORMAL:仅抛出网络错误异常&#xff0c;没有服务器错误异常WriteConcern.SAFE:抛出网络错误异常、服务器错误异常&#xff1b;并等待服务器完成写操作。WriteConcern.…

好奇怪呀后面加什么标点_狗狗吃饭时奇怪的小动作,你知道代表什么吗?做个懂狗的好主人...

狗狗有时候因为一些奇怪的小行为&#xff0c;会让主人觉得很可爱。如果我们希望能够了解狗狗更多一些&#xff0c;那么我们需要透过它们的行为本身&#xff0c;去理解背后所代表的含义&#xff0c;才能和狗狗更亲密的交流。很多狗狗在吃饭的时候&#xff0c;也会表现出一些奇奇…

关闭TCP连接的学问

从TCP协议角度来看&#xff0c;一个已建立的TCP连接有两种关闭方式&#xff0c;一种是正常关闭&#xff0c;即四次挥手关闭连接&#xff1b;还有一种则是异常关闭&#xff0c;我们通常称之为连接重置&#xff08;RESET)。 首先说一下正常关闭时四次挥手的状态变迁&#xff0c;关…

where 1=1低效?

最近一直有点纠结于sql语句里面的where 11是不是低效的&#xff1f;有人跟我说不会降低sql的效率&#xff0c;但是我理解这里应该是低效的。有一些是说where 11会造成数据库表的优化失效&#xff0c;比如聚集索引的什么&#xff0c;具体我也不清楚里面的原理是怎样的。 我这样觉…

开机未发现nvidia控制面板_修改这几个选项,就能提升你的开机速度

最近电脑非常卡&#xff0c;有时真的想把它给砸了&#xff0c;慢的自己都受不了&#xff0c;开机几分钟&#xff0c;开机完还要等上好久才能运行软件&#xff0c;都快受不了&#xff0c;要不是看在已经是10前的买的电脑&#xff0c;早就问候产商了&#xff0c;电脑缓慢的开机速…

ubuntu下使用UVC摄像头

导师让学习opencv编程&#xff0c;想用Qt但是发现windows上Qt使用directshow非常麻烦&#xff0c;就想到linux上编程&#xff0c;于是买一普通摄像头&#xff0c;回来一看&#xff0c;插在ubuntu电脑上没有反应&#xff0c;知道视驱动的问题&#xff0c;开始探寻如何在ubuntu上…