本文内容为华北水利水电大学研究生C++课程,如有 侵权请告知,作者会予以删除
语句是程序的基本语法成分。程序设计语言的语句按功能可以分成三类:声明语句 指示编译器分配内存,或者提供程序连接信息。操作语句 描述对数据的处理。控制语句 用于控制程序的执行流程。
所有程序都只能包含三种控制结构: 顺序结构、选择结构和循环结构
3>. if( 表达式 ) 语句1 ;
else if( 表达式 ) 语句1 ;
else 语句2 ;
if 与 else 的配对关系:C++规定,else 总是与它接近的if 配对
经典案例:大小写转换
- #include
- using namespace std ;
- int main()
- { char ch;
- cout << "ch = ";
- cin >> ch ;
- if ( ch >= 'A' && ch <= 'Z' ) ch += 32 ;
- cout << ch << endl ;
- }

switch ( 表达式 )
{ case 常量表达式 1 : 语句 1;break;
case 常量表达式 2 : 语句 2;break;
case 常量表达式 n : 语句 n;break;
default : 语句 n+1 }
default 子句可选。缺省时,没有匹配值 switch 语句为空
csae 和 default 仅起语句标号作用,不能控制程序流程,一旦选中一个case分支后,将继续往下顺序执行语句序列,添加 break 语句可以跳出 switch 语句体,达到控制流程作用。
while( 表达式 )循环体 ;
do 循环体 while( 表达式 );
- #include
- 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
- 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 ;
- }

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
- 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<
- if ( n > (i-1)*2 ) cout << a0+a1 << endl ;// n为奇数,输出最后一项
- }

1.2.3嵌套循环
一个循环语句的循环体内又包含循环语句,称为嵌套循环
1.3判断表达式
输出1~100之间的奇数
for ( int i = 1 ; i <= 100 ; i ++ )
if ( i % 2 ) cout << i << ' \t ' ;
判断a是否等于b
if ( a - b ) cout << 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 ( E2 ) continue ;语句 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语句采用就近匹配的原则。
用括号{ }改变复合语句结构,可以改变if与else的匹配关系。
switch语句根据一个表达式的不同可能值决定选择执行,适用于条件判断比
较简单的多路选择。
循环结构有
whlie
语句、
do_while
语句和
for
语句。
while语句和do_while语句主要用于条件循环。
for语句是C++中很灵活的循环语句,既可以用于控制次数循环,也可以用于条
件循环。
转向语句是程序的流程控制的补充机制。
C++
的转向语句主要有:break、
continue和goto语句。