主要内容
- 程序流控制
- if 语句
- 比较操作符 , 逻辑操作符
- 程序语句
- 循环语句:for 语句 , while 语句 , do while 语句
- switch 语句
程序流控制
什么是程序流控制
程序流控制就是控制代码中程序语句的执行顺序。
关键字 if
C程序设计语言中提供了很多的关键字用于在我们的程序中进行程序流控制,其中的一个关键字就是 if。
if 语句
- if关键字的主要功能是允许我们从多个选项中选取一个
在C语言中是怎么来表示的呢?
#include <stdio.h> int main(int argc,const char *argv[]){ int myInt; myInt = 5; if(myInt == 0){ printf("myInt is equal to zero"); } else{ printf("myInt is not equal to zero"); } }
if 语句格式
if(表达式){ 语句 } 或者是 if(表达式){ 语句 1 } else { 语句 2 }
比较操作符
C语言表达式中有一些特殊的操作符,我们称为比较操作符,又叫关系表达式。所谓的关系表达式是依赖比较操作符左右两边的关系,产生布尔值”真或者假“
例如:== 操作符是比较操作符两边的值是否相等,如果相等的话表达式的值为真,否则表达式的值为假。 myInt == 5; 如果myInt的值是5的话,表达式的值为真,如果myInt的值不是5的话,表达式的值为假。 if ( myInt == 5 ) printf( "myInt is equal to 5" ); 如果myInt的值是5的话,表达式myInt == 5就是真,printf函数会被调用。 如果myInt的值不是5的话,表达式myInt==5就是假,printf函数语句会被忽略。
逻辑操作符
- 逻辑操作符 ! ,我们称为非操作;例如!A操作,称为非A。逻辑非操作符的功能是,将true转变为false,将false转变为true。
例子
bool myFirstBool, mySecondBool; myFirstBool = false; mySecondBool = ! myFirstBool; if ( mySecondBool ) printf (“mySecondBoo must be true”); if ( !mySecondBool ) printf (“mySecondBoo must be false”);
逻辑与操作符&&和逻辑或操作符||
符号&&是逻辑与操作,逻辑与操作符是二元操符,其功能是当且仅当操作符两边的操作数都为真的时候,表达式的值为真,否则如果任何一个操作数为假,或者都为假的时候表达式的值为假。
bool hasCar, hasTimeToGiveRide; hasCar = true; hasTimeToGiveRide = true; if ( hasCar && hasTimeToGiveRide ) printf( "Hop in - I'll give you a ride!\n" ); else printf( "I have no car, no time, or no car and no time!\n" );
符号||是逻辑或操作,逻辑或操作符也是二元操作符,其功能是如果操符符左边和右边任何一个操作数为真,或者如果两个操作数都为真的时候,表达式的值为真;当且仅当两个操作数都为假的时候,表达式的值才会假。
bool nothingElseOn, newEpisode;
nothingElseOn = true;
newEpisode = true;
if ( newEpisode || nothingElseOn )
printf( "Let's watch Family Guy!\n" );
else
printf( "Something else is on or I've seen this one.\n" );
int nothingElseOn, itsARerun;
nothingElseOn = true;
itsARerun = false;
if ( (! itsARerun) || nothingElseOn )
printf( "Let's watch Family Guy!\n" );
else
printf( "Something else is on or I've seen this one.\n" );
符合表达式
示例:
int myInt;
myInt = 7;
if ( (myInt >= 1) && (myInt <= 10) )
printf( "myInt is between 1 and 10" );
else
printf( "myInt is not between 1 and 10" );
程序语句
嵌套if语句
if ( myVar >= 1 ) if ( myVar <= 10 ) printf( "myVar is between 1 and 10" ); 这个例子里,使用一个if语句作为另外一个if语句的语句。其表达的含义是如果两个if语句的表达式都为真则调用printf()函数。也就是当myVar大于等于1并且小于等于10的时候printf()语句被调用。 实际上这个代码例子与如下代码功能完全相同。 if ( ( myVar >= 1 ) && ( myVar <= 10 ) ) printf( "myVar is between 1 and 10" ); 这个例子的代码可读性更好。
空语句
C语言中最简单的语句就是空语句,它本身只包含一个分号。空语句本身并不执行任何任务,但有时还是有用的。它所适用的场合就是语法要求出现一条完整语句,但并不需要它执行任何任务。 例如: if ( bored ) ;
表达式语句
在所有的表达式后面加上一个分号,就可以把表达式转变为语句,这样的语句叫表达式语句。 C语言中本身不存在赋值语句,但是下面两个表达式: myInt = anotherInt + 3; myInt ++; 实际上是表达式语句。
while 语句
对于if语句来说, 如果表达式为真,那么if的语句会被执行,但是只执行一次。那么对于while语句,如果指定的表达式为真,那么语句将会重复执行。所以while语句也被称为while循环。语法格式如下: while ( expression ) statements while语句的执行过程及Demo int i; i = 0; while(++i < 3) printf("Looping:%d\n",i); printf("We are past the while loop."); while语句的三个要素:初始化,修改,终止
- while循环中的break语句,用于终止循环,在执行完break语句后,执行流程的下一条执行的语句就是循环正常结束后的那条语句。
continue用与终止当前那次循环。
for语句
for语句与while语句类似,属于循环语句,他也遵循初始化,修改,终止 的模型。 语法格式如下: for(expression1; expression2; expression3) statement for语句执行过程Demo for(i = 1; i < 3; i++){ printf("Looping: %d\n",i); }
- do语句
do 语句的语法格式 do{ statement }while(expression); do 语句的执行Demo int i = 0; do{ printf("%d",i); i++; }while(i < 3); do语句的特点是: 无论表达式的值是否为0;循环体都会执行一次
- switch语句
switch语句也是选择语句,语法格式如下: switch ( expression ) { case constant: statements case constant: statements default: statements } 执行过程及Demo switch ( theYear ) { case 1066: printf( "Battle of Hastings" ); break; case 1492: printf( "Columbus sailed the ocean blue" ); break; case 1776: printf( "Declaration of Independence\n" ); printf( "A very important document!!!" ); break; default: printf( "Don't know what happened during this year" ); }