c语言布尔常量,C语言速成手册(二):布尔值、条件判断、循环

逻辑运算符

作用   |  C  | Pascal

———+—–+———–

等于   | ==  |  =

不等于  | !=  |  <>

小于   |

大于   | >   |  >

小于等于 | <=  |  <=

大于等于 | >=  |  >=

且    | &&  |  and

或    | ||  |  or

非    |  !  |  not

C语言的if语句

C语言中if语句的写法如下:

if (表达式)

{

表达式为真时执行的内容

}

之前说过,如果执行的内容只有一句话,花括号可以省略。

下面的语句将返回整数a的绝对值:

if ( a<0 )

a= -a;

下面的语句用于实现排序网络中的比较算子:

if ( a>b )

{

int c=a;

a=b;

b=c;

}

C语言中也有else if和else的用法,但和Pascal不同的是else的前一条语句末要保留分号。下面的语句用于判断三边长分别为a, b, c的三角形是什么三角形:

if ( a+b>c && b+c>a && a+c>b )

{

if ( a==b && b==c )

printf("Regular Triangle");

else if ( a==b || b==c || a==c )

printf("Isosceles Triangle");

else

printf("Scalene Triangle");

}

else

printf("Triangle Doesn't Exist.");

C语言的bool类型

C语言中没有布尔类型。任何一个整型的变量都可以充当布尔变量,用0表示False,其它数(默认为1)表示True。

观察下列代码片断。

printf("%d n", 3+5 == 8);

int a;

a = 3+5==9;

printf("%d n" , a);

a = 100 <= 100;

printf("%d n" , a);

a = 1;

if(a) printf("a is 1n");

a = 2;

if(a) printf("a is 2n");

a = -1;

if(a) printf("a is -1n");

a = 0;

if(a) printf("a is 0n");

if(!a) printf("a is not 0n");

这段程序的输出为:

1

0

1

a is 1

a is 2

a is -1

a is not 0

如果觉得别扭,你可以使用_Bool类型。你可以把_Bool看作整型,但它只能储存0和1两个值。

下面三句话将输出数字1,这是因为_Bool类型把所有非0数都当做是1。

_Bool a;

a = 100;

printf("%d", a);

如果你想像Pascal一样使用true和false,那么你可以包含头文件stdbool.h。这样你可以定义变量为bool类型并赋值为true或false。例如:

bool a = true;

if (a) printf("a is true");

下面是两个完整的程序。第一个程序中_Bool可以替换成int。三种写法都正确,你可以选择一种自己喜欢的写法。

#include

_Bool isNegative ( int a )

{

if (a<0) return 1;

else return 0;

}

int main()

{

if ( isNegative(-100) )

printf("-100 is Negative");

return 0;

}

#include

#include

bool isNegative ( int a )

{

if (a<0) return true;

else return false;

}

int main()

{

if ( isNegative(-100) )

printf("-100 is Negative");

return 0;

}

C语言的for循环

for循环使用下面的语句:

for ( 语句1; 语句2; 语句3 )

{

循环内容

}

其中语句1用于初始化,若语句2为真(非0)则进入循环;每次循环后将执行语句3,此时若仍然满足语句2则继续循环,否则退出。语句123中,某一种语句可能为空,也可能由多条语句组成(多条语句用逗号隔开)。

下面的语句打印1到10这10个数。以下所有写法都是正确的。通常用第一种写法。

int i;

for (i=1; i<=10; i=i+1)

printf("%dn", i );

int i=1;

for ( ; i<=10; i=i+1)

printf("%dn", i );

int i;

for (i=1; i<=10; )

{

printf("%dn", i );

i=i+1;

}

int i;

for (i=1; i<=10; printf("%dn", i ), i=i+1 );

巧妙地应用for循环可以使某些操作非常简单。下面的函数可以计算n的质因子个数:

long countPrimeFactor( long n )

{

long d, count;

for (d=2, count=0; n>1; d=d+1 )

for ( ; n%d==0; count=count+1, n=n/d );

return count;

}

下面的语句将产生死循环:

for ( ; ; ) ;

C语言的while循环

while循环格式如下:

while ( 循环条件 )

{

循环内容

}

下面的代码计算1394和6150的最大公约数:

int a=1394, b=6150;

while ( b )

{

int tmp = a % b;

a = b;

b = tmp;

}

printf("The gcd is %d", a);

do..while循环

do..while循环的格式如下:

do

{

循环内容

}

while ( 循环条件 );

将条件放在循环内容的后面,使程序至少执行循环内容一次。

循环控制

C语言中使用break语句和continue语句来控制循环,其使用方法与Pascal完全一样。

switch语句

switch语句相当于Pascal中的case语句。

下面代码的输出为2 3 default done! , 因为switch语句只负责把程序运行的位置跳转到相应的地方。

int n=2;

switch (n)

{

case 1: printf("1 ");

case 2: printf("2 ");

case 3: printf("3 ");

default: printf("default ");

}

printf("done!");

你可以用break语句实现Pascal的case,例如下面的写法就可以让程序输出2 done! :

int n=2;

switch (n)

{

case 1:

printf("1 ");

break;

case 2:

printf("2 &

#34;);

break;

case 3:

printf("3 ");

break;

default: printf("default ");

}

printf("done!");

goto语句

你可以在程序的任何位置插入一个标签:

标签名:

并在同一函数里使用下面的语句实现无条件跳转:

goto 标签名;

例如,下面的代码将产生死循环,并输出满屏幕的求爱信息。

a: printf(" I Love You !!!!!!! ");

goto a;

Matrix67原创

转贴请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值