• 宋体语句那些苦逼日子的学习(C语言)06


    查了好多资料,发现还是不全,干脆自己整理吧,最少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!

        那些苦逼日子的学习(C语言)06

        

    if语句
    如果...或者...否则
    也就是说,if语句许允序程通过测试表达式的值从两种选项中选择一项。
    if语句表达式
    if(表达式1){
        语句1;
    }else if(表达式2){
        语句2;
    }else{
        语句3;
    }
    语句next;
    注意:1.如果if前面没有语句,加上分号
          2.else if 可以现出0 ~ n次
          3.else 可以现出0 ~1次
          4.分支中只有一条一句的时候可以省略{}
    面下我们看段代码:
    1. /*
    2. if...else
    3. */
    4. #include <stdio.h>

    5. int main(){
    6.     int salary = 0;
    7.     printf("Please input your monthly salary:");
    8.     scanf("%d",&salary);
    9.     if(salary >= 10000){
    10.          printf("You can fly home---\n");
    11.     }else if(salary >= 5000 && salary < 10000){
    12.          printf("You can take the high-speed rail to go home---\n");
    13.     }else if(salary >= 3000 && salary < 5000){
    14.          printf("You can take the train home---\n");
    15.     }else if(salary >= 1500 && salary < 3000){
    16.         printf("You can take the bus home---\n");
    17.     }else{
    18.         printf("The tragedy of the child, you walk home!\n");
    19.     }
    20.     return 0;
    21. }
    复制代码

    面下我们看看入输 年 月 ,然后输出这个月有多少天
    1. /*入输年代,输出这个月有多少天*/

    2. #include <stdio.h>

    3. int main(){
    4.      int year = 0,month = 0;
    5.      printf("Please enter the year and month:");
    6.      scanf("%d%d",&year,&month);
    7.      if(month == 4 || month == 6 || month == 9 || month == 11){
    8.          printf("This month 30 days\n");
    9.      }else{
    10.          if(month != 2){
    11.              printf("This month 31 days\n");
    12.          }else{
    13.              if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
    14.                   printf("This month 29 days\n");
    15.             }else{
    16.                  printf("This month 28 days\n");
    17.            }
    18.        }
    19.      }
    20.     return 0;
    21. }
    复制代码

    要注意,在 if 语句的模版中,语句是一条而不是多条,如果想要 if 语句出口 i 两条或者更多条语句,可以应用复合语句
    复合语句:
    一对大括号 {} 括起来的一组语句,编译器看成一条语句来理处,
    {
    ....
    ....
    }
    就近准则:多个 if 后跟 else 的时候, else 老是与近最的 if 相搭配
    switch 语句
    在某些情况下 ,须要表达式和多个值行进比拟,找出匹配的值数,行执特定的操纵
    C 语言供给了 switch 语句作为 if 语句的换替
    switch( 控制表达式 ){
        case  常量表达式 1: 语句 1; break;
        case  常量表达式 2: 语句 2; break;
        ...
        default:  ....
    }
    控制表达式:算计结果是整形,不能是浮点数或者字符串。 switch 前面必须着跟由 () 括起来的整形表达式。 C 语言把字符看成数整来理处,因此 switch 也可以对字符行进判断
    常量表达式:不能包括量变或者函数用调,终究结果必须是数整。常量表达式很像通普的表达式,但是不能包括量变或者函数的用调, 5 是常量表达式, 5+10 也是常量表达式,但是 n+10 不是常量表达式 ( 除非 n 是表现常量的宏 ) ,分支号标中的常量表达式必须是数整 ( 也可所以字符 )
    个一每分支中可以包括多条语句,可以不应用 {}
    注意:不许允复重的分支存在
    各个分支之间的序顺是不定固的。
    break 作用:行执 break 语句的时候,致导序程的行执程流跳出 switch 语句,继承行执 switch 前面的语句
    须要 break 语句是由于 switch 语句实际上是一种基于算计的跳转,对控制表达式求值的时候,控制会跳转到与 switch 表达式的值数想匹配的分支表利益,分支号标只是一个明说 switch 部内位置的记标。在行执完分支中的最后一条语句的时候,序程控制向下跳转到下一个分支的第一条语句上,从而疏忽了下一个分支号标。如果没有 break 语句 ( 或者其他的某种跳转语句 ) ,控制将会从一个分支继承到下一个分支。
    面下我们看看序程 ( 1~100 分之间的得分行进评级 )
    1. #include <stdio.h>

    2. int main(){
    3.     int score = 0;
    4.     printf("Please enter your results:");
    5.     scanf("%d",&score);
    6.     printf("Class:");
    7.     switch((score - 50) / 10){
    8.         case 5:
    9.         case 4:printf("A\n");break;
    10.         case 3:printf("B\n");break;
    11.         case 2:printf("C\n");break;
    12.         case 1:printf("D\n");break;
    13.         default:printf("Fail\n");
    14.     }
    15.     return 0;
    16. }
    复制代码




    环循语句
    环循就是复重行执环循体( 语句块 ) 的一种语句,在 C 语言中,个一每环循都有一个控制表达式。每次行执环循体的时候,都要对控制表达式求值。如果表达式为真,那么继承行执环循。
    C 语言供给了三种环循语句:
    while   do while    for 语句。当然 goto( 无条件跳转 ) 语句也可以行进环循的控制
    for 环循
        for 环循很适合在应用”计数”量变的环循中,当然,这不是它的定限
    1.for( 表达式 1; 表达式 2; 表达式 3){
        语句 ;
    }
    表达式 1 :环循条件的初始化
    表达式 2 :控制环循的条件
    表达式 3 :修改环循量变,是环循趋于结束 ( 环循的条件为假 )
    必定要注意 for环循中各个表达式的行执序顺
    看看 for 环循的行执程流图:


    未定名1.jpg
    1. #include <stdio.h>

    2. int main(){
    3.     int i = 0;
    4.     for(i = 1;i < 11;i++){
    5.         printf("1 = %2d\n",i);
    6.     }
    7.     return 0;

    8. }
    复制代码
    2.for 环循的习惯用法
    for(i = 0;i < n;i++)...
    for(i = 0;i <= n;i++)...
    for(i = n;i > 0;i--)...
    for(i = n - 1;i >= 0;i--)...
    3.在 for 环循中省略表达式
             语句 for 环循远比现在看到的活灵,常通 for 环循用三个表达式来控制环循,但是一些环循可能不须要这么多,因此 C 语言许允省略意任或者部全的表达式
    就说下面的那个例子,我们也可以写成这样:
    int i = 1;
    for(;i < 11;i++){
    printf("1 = %2d\n",i);
    }
    注意:保存第一个表达式和第二个表达式之间的分号,即使省略掉某些表达式,表达式之间的分号也是必须要写的。
    上的那个例子,我们还可以这样写:
    int i = 1;
    for(i = 1;i < 11;){
    printf("1 = %2d\n",i++);
    }
    这个明说白我们也可以应用量变  在环循体行进自加操纵
    但省略掉第二个表达式,那么默为认真, for 环循不会止终。那么我们可以在环循体中加增 break 语句,跳出环循
    但我们省略掉第一个和第三个表达式的时候,那就和 while 环循没什么区别了。
    C99 中,语句 for 的第一个表达式可以换替为一个明声,这个特性可以让我们明声一个于用环循的量变
    如:
    for(int i = 0;i < 10;i++)
    ....
    须要注意的是,应用这样情势编写完序程后之,在编译的时候须要加上  -std=c99 ,这样就不会报错了
    如:
    1. #include <stdio.h>


    2. int main(){
    3.     for(int i = 1;i < 11;){
    4.         printf("%2d\n",i++);
    5.     }
    6.     return 0;
    7. }
    复制代码




    wps_clip_image-6350.png
    逗号运算符
    某些时候我们可能爱好编写两个 ( 或者多个 ) 初始表达式,或者希望在没次环循中对几个量变行进自增操纵,应用逗号表达式作为 for 环循语句第一个或者第三个表达式可以实现这些法想:
    for(i = 0,j = 0;...;printf(),i++,j--)
    表达式 1 ,表达式 2
    算计程过
    第一步:先算计表达式 1 ,将算计所得的过记丢掉
    第二部:算计表达式 2 ,将算计结果作为表达式的终究结果
    面下我们写短代码:相信大家的英文水平能看懂哦。

    1. /*
    2. Specifies the number of students, and average scores a total score calculation
    3. */

    4. #include <stdio.h>

    5. int main(){
    6.     int count = 0;//Initialization of the number of students
    7.     printf("Please enter the number of the students:");
    8.     scanf("%d",&count);
    9.     int i = 0; //The loop control variable
    10.     float temp = 0.0;//Temporary storage of student achievement
    11.     float sum = 0.0;//The total score of storage

    12.     for(;i < count;i++){
    13.         printf("Please input the %d grade students:\n",i + 1);
    14.         scanf("%f",&temp);
    15.         sum += temp;
    16.     }
    17.     printf("The total score of the students:%g\nGrade point average:%g\n",sum,sum/count);
    18.     return 0;
    19. }
    复制代码
    for 环循的嵌套
    应用 for 环循嵌套可以实现一些庞杂的算法:
    for(){
    for(){
    ....
    }
    }
    略微玩一下, 99 乘法表;嘿嘿

    1. #include <stdio.h>

    2. int main(){
    3.     int i = 1,j = 1;
    4.     for(i = 1;i < 10;i++){
    5.         for(j = 1;j < i + 1;j++){
    6.             printf("%d*%d=%2d\t",j,i,i * j);
    7.         }
    8.         printf("\n");
    9.     }
    10.     return 0;
    11. }
    复制代码



    while 环循
    while( 表达式 ) 语句
    判断表达式的结果,如果为真,行执语句,返来回继承判断表达式,环循往复,道知表达式的结果为假
    int i = 1;
    while(i < 11 ){
    printf(“%d ”,i++);
    }
    printf(“\n”);
    C 语言中两种经常使用的无限环循 ( 死环循 ) 方法:
    1.while(1) 语句
    2.for(;;;) 语句
    来点代码:

    1. /* Input number, sum of these numbers*/

    2. #include <stdio.h>

    3. int main(){
    4.     int data = 0;//Data is temporarily stored user input
    5.     int sum = 0;
    6.     while(1){
    7.         printf("Please enter an integer (0: exit):");
    8.         scanf("%d",&data);
    9.         if(data == 0) break;
    10.             sum += data;
    11.     }
    12.     printf("The sum of all integer:%d\n",sum);
    13.     return 0;
    14. }

    复制代码
    do while 环循
    语句 do while
    do{
    环循体 ;
    }while( 表达式 );
    注意: do - while  前面有分号
    虽然序程中 while 语句现出的次数比 do - while 语句多,但是后者对于最少一次的环循说来非常的便利


    1. /*Calculation of an integer number of bits*/

    2. #include <stdio.h>

    3. int main(){
    4.     int data = 0;
    5.     int count = 0;
    6.     printf("Please enter an integer:");
    7.     scanf("%d",&data);
    8.     do{
    9.         data /= 10;
    10.         count++;
    11.     }while(data != 0);
    12.     printf("The integer number:%d\n",count);
    13.     return 0;
    14. }

    复制代码

    空语句
    1.空语句经经常使用来编写空环循体的环循
    2.C 序程员习惯性的把空语句独单放在一行
    3.不小心在 if,while,for 中的圆括号后放置分号会创立空语句
    break  coutinue 语句
    break switch 语句:跳出 switch 语句
    环循语句:跳出环循
    coutinue :只能适用在环循中
    结束本次环循,开始下一次环循


    1. /*Judge a prime integer is it right*/

    2. #include <stdio.h>

    3. int main(){
    4.     int data = 0;
    5.     printf("Please enter an integer:");
    6.     scanf("%d",&data);
    7.     int i = 2;
    8.     for(;i < data;i++){
    9.         if(data % i == 0){
    10.             printf("Is not a prime\n");
    11.             break;
    12.         }
    13.     }
    14.     if(i == data)
    15.         printf("prime\n");
    16.     return 0;
    17. }

    复制代码
    1. /*Cannot print 1~~30 between 4 integer integer*/

    2. #include <stdio.h>

    3. int main(){
    4.     int i = 1;
    5.     for(;i < 30;i++){
    6.         if(i % 4 == 0){ //If the number is not 4 complete will not print
    7.             continue;
    8.             printf("%d ",i);
    9.         }
    10.     }
    11.     printf("\n");
    12.     return 0;
    13. }

    复制代码
    goto 语句
    无条件跳转 ( 不推荐应用 ), 就不多做绍介了
    label( 标识符 ):
    语句 ;
    ...
    注意标识符的定名范规
    不要省略标识符前面的冒号

        每日一道理
    人生好似一条河,既有波澜壮阔,汹涌澎湃,也有清风徐来,水波不兴;人生好似一首歌,既有欢乐的音符,也有悲壮的旋律;人生好似一条船,既有一帆风顺时,也有急流险滩处。愿我们都能勇于经受暴风雨的洗礼,接受生活的挑战和考验!

        

     

        

     

        首发址地http://www.bcwhy.com/thread-18659-1-1.html

    文章结束给大家分享下程序员的一些笑话语录: 腾讯总舵主马化腾,有人曾经戏称如果在Z国选举总统,马化腾一定当选,因为只要QQ来一个弹窗”投马总,送Q币”即可。

  • 相关阅读:
    关于多个EditText的OnTextChange事件陷入死循环的处理
    #define #include #undef的其中一个用法(目的)
    串行移位锁存并行输出可级联器件74HC595
    STM32F10xx CAN BUS相关库文件"stm32f10x_can.c"内的库函数解析
    STM32 之 NVIC(中断向量、优先级) 简述
    STM32F103xx bxCAN(Basic Extended CAN) 滤波机制
    VS上利用C#实现一个简单的串口程序记录
    如何去各型MCU的官网上下载正确的数据手册
    Cotex-M3内核STM32F10XX系列时钟及其配置方法
    Stm32 debug停留在"BKPT 0xAB"或者"SWI 0xAB"的解决办法。
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3043238.html
Copyright © 2020-2023  润新知