C与指针——语句(一)

4.1 while语句

break:永久终止循环。在执行完break语句之后,下一条执行的语句就是循环正常结束后应该执行的那条语句。(退出循环)
continue:永久终止当前次的循环。在执行完continue语句之后,执行流接下来重新测试表达式的值,决定是否继续执行循环。(跳过循环体剩余部分,开始下一次循环)

while((ch=getchar())!=EOF){
if(ch<'0'||ch>'9')
continue;

当循环体至少执行一次时,选择do语句。

4.2 for语句

for(ex1;ex2;ex3) 
statement  //循环体
//ex1:初始化部分,只在循环开始时执行一次
//ex2:条件部分,在循环体每次执行前都要执行一次
//ex3:调整部分,当循环体每次执行完毕,在条件部分执行之前执行。
//三个表达式均可省略。若忽略条件部分,则测试的值始终为真。

//for语句也可用while语句代替
ex1;
while(ex2){
statement
ex3;
}

for语句与while语句的区别在于出现continue语句。
for: continue语句跳过循环体的剩余部分,直接回到调整部分;
while:continue语句直接跳过调整部分(因调整部分为循环体一部分)。

4.3 switch语句

switch(ex){
statement_list
}   //ex的结果必须为整型值
    //贯穿于statement_list之间的是一个或多个case标签
    //

case语句:每个case标签必须具有一个唯一的值。case标签只确定语句列表的进入点而不是划分它们的原因。
break语句:将语句列表划分为不同的部分。在switch语句中遇到了break语句,执行流会立即跳到语句列表的末尾(避免switch语句执行时贯穿所有的case标签)。(只影响包围它的最内层循环)
default字句:当switch表达式的值并不匹配所有case标签的值时,执行default字句后面的语句。

goto语句:跳出多层嵌套的循环。把程序的执行流从一条语句转移到另一条语句。一般情况下应尽量避免使用goto语句。

C并不具备任何输入/输出语句,也不具备任何异常处理语句,均通过调用库函数来实现。

编程练习:

1.

正数n的平方根可以通过计算一系列近似值来获得,每个近似值都比前一个更加接近准确值。第一个近似值是1,接下来的近似值则通过下面的公式来获得。
在这里插入图片描述
编写一个程序,读入一个值,计算并打印出它的平方根。如果你将所有的近似值都打印出来,你会发现这种方法获得准确结果的速度有多快。原则上,这种计算可以永远进行下去,它会不断产生更加精确的结果。但在实际中,由于浮点变量的精度限制,程序无法一直计算下去。当某个近似值与前一个近似值相等时,你就可以让程序停止继续计算了。

程序如下:

// 计算一个数的平方根。
#include <stdio.h>
#include <stdlib.h>

int main(){
   float new_guess;
   float last_guess;
   float number;

    // 催促用户输入,读取数据并对它进行检查。
    printf("Enter a number: " );
    scanf("%f", &number );
    if( number < 0 ){
       printf("Cannot compute the square root of a " "negative number! \n");
      return EXIT_FAILURE;
    }

    // 计算平方根的近似值,直到它的值不再变化。
    new_guess = 1;
    do{
        last_guess = new_guess;
        new_guess = ( last_guess + number / last_guess ) / 2;
        printf ("%.15e\n", new_guess );
   } while( new_guess != last_guess );

    // 打印结果
   printf ("Square root of %g is %g\n", number, new_guess );
   system("pause");
   return EXIT_SUCCESS;

}


运行结果:
在这里插入图片描述

Sweet dream~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值