当前位置:   article > 正文

基本语法结构_编程常用语法大全

编程常用语法大全

目录

一、循环语法

1.while循环

2.for循环

3.do while循环

二、分支语法(通常会配置比较运算符使用)

1.单分支

2.双分支

3.多分支

三、条件语法

1.switch语句

四、goto语法


一、循环语法

1.while循环

写法1:

while(表达式)

{

        //语句组

}

写法2:

while(表达式);        //其中的表达式可以是数值、运算语句、比较语句等

例如

        while(1);         //死循环

        while(a++);     //运算语句

        while(a++>3); //运算+比较

执行逻辑:先判断表达式是否成立,成立则执行具体语句组

(一般情况下‘;’和‘{}’属于互斥状态)

2.for循环

写法:

        for(表达式1;表达式2;表达式3;)

{

        //语句组

}

表达式1:赋值表达式,用来对参与循环的变量进行赋值

表达式2:循环条件表达式,用来判断循环是否能够执行

表达式3:算术表达式,用来改变参与循环判断的变量

(for循环中所有表达式都可以被省略,但是内部的三个分号不行)

例如以下四种写法

  1. int i;
  2. for(i = 0;i < 5;i++)
  3. {
  4. printf("i = %d\t",i);
  5. }
  6. printf("\n");
  7. //循环执行5次
  1. i = 0;
  2. for(;i < 5;i++)
  3. {
  4. printf("i = %d\t",i);
  5. }
  6. printf("\n");
  7. //省略了赋值表达式,循环执行5次
  1. for(i = 0;;i++)
  2. {
  3. printf("i = %d\t",i);
  4. if(i == 4)
  5. break;
  6. }
  7. printf("\n");
  8. //省略了条件表达式,循环执行5次
  1. for(i = 0;i < 5;)
  2. {
  3. printf("i = %d\t",i++);
  4. }
  5. printf("\n");
  6. //省略了算术表达式,循环执行5次

3.do while循环

写法

        do

{

        //语句组

}while(表达式);

执行逻辑:先执行语句组,在判断循环是否成立

  1. a = 3;
  2. do
  3. {
  4. printf("a = %d\n",a);
  5. }while(a-->1);
  6. //循环了三次

二、分支语法(通常会配置比较运算符使用)

1.单分支

if(表达式)

{

        //语句组

}

执行逻辑:如果表达式成立,那么执行语句组,否则跳过语句组

  1. int a = -5;
  2. int b = 6;
  3. if(a < b) //如果a<b输出下面的语句,反则跳过该句
  4. {
  5. printf("a<b\n");
  6. }
  7. if(a)
  8. {
  9. printf("a = %d\n",a);
  10. }

2.双分支

if(表达式1)

{

        //语句组1

}

else

{

        //语句组2

}

执行逻辑:如果表达式1成立,那么执行语句组1,反则跳过语句组1执行语句组2

  1. if(a)
  2. {
  3. printf("a = %d\n",a);
  4. }
  5. else
  6. {
  7. printf("b = %d\n",b);
  8. }

3.多分支

if(表达式1)

{

        //语句组1

}

else if(表达式2)

{

        //语句组2

}

...

else

{

        //语句组n

}

其中每个if匹配后面最近未匹配的else

break和continue用在循环中

break的作用是直接退出循环

continue的作用是跳过本次循环,执行下一次循环

(注意break语句可以用在switch语句中,但continue不行)

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i;
  5. for(i = 0;i < 4;i++)
  6. {
  7. if(i == 2)
  8. {
  9. break; //直接退出循环
  10. }
  11. printf("break:i = %d\n",i);
  12. }
  13. for(i = 0;i < 4;i++0
  14. {
  15. if(i ==2)
  16. {
  17. continue;
  18. //跳过本次循环,执行下一次循环。注意i++还是有执行
  19. }
  20. printf("continue:i = %d\n",i);
  21. }
  22. return 0;
  23. }

三、条件语法

1.switch语句

写法

        switch(表达式)

        {

                case常量:

                        //语句组1

                default:

                        //语句组2

        }

常量:无法修改的数据(系统内部) 

变量:可以随意修改的数据(由程序员定义)

表达式:只能是整型常量表达式

(整型数据、字符型、枚举型)

其中字符类型因为字符在计算机中按照ASCII码来储存

执行逻辑:与if-else类似,根据常量的数值来执行相应的语句

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int num
  5. scanf("%d",&num);
  6. switch(num)
  7. {
  8. case 0:
  9. printf("num == 0\n");
  10. break;
  11. default:
  12. printf("num != 0\n");
  13. break;
  14. }
  15. //此处一共输出一次打印
  16. switch(num)
  17. {
  18. case 0:
  19. printf("num == 0\n");
  20. default:
  21. printf("num != 0\n");
  22. }
  23. //此处输出两次打印
  24. return 0;
  25. }
  1. //上述switch相当于if-else语句
  2. if(num == 常量)
  3. {
  4. //语句组1
  5. }
  6. else
  7. {
  8. //语句组2
  9. }

注意一般来说case语句需要配合break语句使用,如果没有break语句程序会一直往下运行 直到遇到break语句或者结束switch语句

例如从键盘中输入字符数据,然后输出相应的ASCII码数值,遇到‘#’退出循环:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char str;
  5. int flag = 0;
  6. while(1)
  7. {
  8. scanf("%c",&str);
  9. //getchar(); 此语句可以将缓冲区\n清除,或在下面用case语句跳过
  10. switch(str)
  11. {
  12. case'#':
  13. printf("遇到#,退出程序\n");
  14. flag = 1; //此处为转变标志位
  15. break;
  16. case'\n': //因为空格\n会占字符,所以跳过\n
  17. break; //也可以在scanf语句下面添加getchar()
  18. default:
  19. printf("%c对应的ASCII码数值为:%d\n",str,(int)str);
  20. printf("请输入一个字符:\n");
  21. break;
  22. }
  23. if(flag == 1) //此处判断是否遇到‘#’,如果遇到,那么标志位变为1
  24. {
  25. break;
  26. }
  27. }
  28. return 0;
  29. }

如果需要用case来表示取值范围,需要有空格

错误示范:case 0...8:

正确示范:case 0 ...8:

四、goto语法

写法

        goto 标签名;

标签名:

        语句组;

作用:用于语句的跳转,但注意该语句容易破坏程序逻辑性,常用于系统内核开发

  1. #include<stdio.h>
  2. int main()
  3. {
  4. goto exam; //开始进行语句跳转
  5. return 0;
  6. exam: //标签名
  7. printf("语句\n");
  8. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/250356
推荐阅读
相关标签
  

闽ICP备14008679号