首页 > 其他分享 >C语言【控制语句】

C语言【控制语句】

时间:2023-11-18 20:34:42浏览次数:34  
标签:语句 控制 num ... C语言 break case 循环

C语言【控制语句】

一、分支控制语句

1、if语句略。
2、switch...case如下
switch(表达式){	
    case 常量1:
        // ...
        break;
    case 常量2:
        // ...
        break;
    defaule:
        // ...
        break;
}

注意: switch括号里的表达式只能存在整数计算或能表达整数的计算,不能出现浮点数的计算。

case的判断条件或的表示方法如下:

switch(xxx){
    case 1:
    case 2:
    case 3:
        // ...
        break;
}

注意: 如果case的代码里不加break; 则它会匹配到第一个满足条件的case后进入,然后无条件执行下面的语句,且对下面的case进行匹配,知道再次遇到break或switch执行结束。

int num = 0;
/**
	10 % 6 得到 4 , 匹配到case 4 后,执行num+=10,由于没有break,继续执行 num+=40
*/
switch(10 % 6){
    case 2:
        num+=10;
    case 4:
        num+=20;
    case 6:
        num+=40;
}

二、循环控制语句

1、while循环。

​ 基本语法略。

注意循环变量一定要在循环体中改变。

​ 对于while循环,continue和break 如果写在循环变量之前,则循环变量不进行改变。(很正常对吧。)

2、do...while循环。

​ 基本语法格式如下:

do{
   	// ...
} while(循环条件表达式);

​ do...while是先执行一遍再走判断条件,其他参考while。

3、for循环。

​ 基本语法格式略。

​ for循环括号里的三部分都可以省略,也可以只省略其中任意一项或两项

​ for循环括号里的三部分每部分都可以写多个语句,用逗号隔开。

​ C89标准不允许把循环变量的声明放在for的括号里。for(int x = 0; ...; ...) 是不允许的;C99才有这个新特性。

for(;;){} // 随意省略。 这种表示即
for(int x = 0, y = 0; x < 6, y > 5; x++, y--){}	// x<6,y>5;括号里这个式子视为与操作,同时满足才进入循环。

​ 对于for循环来说,break跳出循环后循环变量为跳出前的值;

​ 对于for循环来说,continue有些不同,它会先goto到更新循环变量(如i++)的位置把循环变量更新(除非i++不是在for循环的括号里做的),之后再跳到循环判断。

4、goto语句。

​ 基本语法格式如下。

int main(){
loop_x:					// 按照格式化,跳转的标识符比语句往前一个tab
	printf("来个跳转...\n");
	if(1){					// 无论如何都进入下面的跳转,成了死循环。
        goto loop_x;
    }
}

​ break只能跳出本层循环,goto可以跳到任何位置。

5、二重循环的应用,一种格式九九乘法表的实现。

​ 两重嵌套循环时,利用好i和j的的特性,能很好的解决问题。

                                                                1*1=1
                                                        2*1=2   2*2=4
                                                3*1=3   3*2=6   3*3=9
                                        4*1=4   4*2=8   4*3=12  4*4=16
                                5*1=5   5*2=10  5*3=15  5*4=20  5*5=25
                        6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36
                7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49
        8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81
// 如上格式的乘法表实现代码为:
for(int i = 1; i <= 9; i++){
    // 先输出前面的空格。每行空格为:9-i个
    for(int j = 1; j <= 9-i; j++){
        printf("\t");
    }
    // 输出乘法表。在这个循环中控制列,发现将空格输出完毕后,第一个乘数为列号,每行有i个乘法式。
    for(int j = 1; j <= i; j++){
        printf("%d*%d=%d\t", i, j, i*j);
    }
    printf("\n");
}

三、补点杂的。

1、使用scanf(...)时不能用 %d 接收字符类型。非要那样的话接收的值会因控制台的编码而混乱,而不是ASCII码。

2、同一作用域内,同一变量不可重复声明。

3、scanf(...)接收变量时,第一个参数一定别填些应该在printf放的提示字符或转义字符;第二个参数一定要加&

4、printf("xxx%d,xxx%d\n", num, num); 这个表达式中存在两个占位符的num,尽量就别++、--操作了,会混乱。

标签:语句,控制,num,...,C语言,break,case,循环
From: https://www.cnblogs.com/wangsiyaoa/p/17841047.html

相关文章

  • Java开发者的Python快速进修指南:控制之if-else和循环技巧
    简单介绍在我们今天的学习中,让我们简要了解一下Python的控制流程。考虑到我们作为有着丰富Java开发经验的程序员,我们将跳过一些基础概念,如变量和数据类型。如果遇到不熟悉的内容,可以随时查阅文档。但在编写程序或逻辑时,if-else判断和循环操作无疑是我们经常使用的基本结构。毕竟,......
  • 入门c语言--基于c库函数strstr的实现
    #include<stdio.h>#include<assert.h>char*my_strstr(constchar*p1,constchar*p2){ assert(p1&&p2);//检查p1和p2是否为空指针//创建s1,s2来在p1,p2中进行移动,创建指针tmp来保存开始移动时的s1的位置 char*s1=NULL; char*s2=NULL; char*tmp=(char*)p1;//对p1......
  • C条件语句
    ......
  • while和do-while语句的使用
    ......
  • C语言指针的应用场景
    C语言指针的应用场景指针是C语言的精华和灵魂,不懂指针,基本等同于不会C语言。掌握指针,让学会C语言不再成为梦想而成为现实。指针基本上有三大类:指向数据的指针指向函数的指针泛型指针(void*)指针的应用场景可以分为以下10类:-1.与函数相关的使用-1.1在函数中用作输出......
  • IDEA控制台输出中文乱码
    1.问题如下图,我使用的文件编码格式为UFT-8,这里会出现中文乱码的问题。且我并不方便直接修改全局文件编码格式,有可能会造成未知错误。2.解决参考链接:IDEA控制台中文乱码4种解决方案2.1选中要运行的项目,并点击编辑配置2.2在VM选项中加入-Dfile.encoding=GBK选项即可......
  • 【9.0】Python基础之流程控制语句
    【一】流程控制语句介绍程序是由语句构成,而流程控制语句是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。其流程控制方式有顺序结构分支结构循环结构这里最简单......
  • 【第7章】访问控制技术原理与应用(信息安全工程师)
    7.1访问控制概述 7.1.1访问控制概念 访问控制是指对资源对象的访问者授权、控制的方法及运行机制。访问者又称为主体,可以是用户、进程、应用程序等;而资源对象又称为客体,即被访问的对象,可以是文件、应用服务、数据等;授权是访问者可以对资源对象进行访问的方式,如文件的读、......
  • C语言小案例
    在一个整型数组中插入任意一个数字,进行重新排序,用多种方法如何实现?方法1:直接插入排序法#include<stdio.h>voidinsert(intarr[],intn,intx){inti,j;for(i=0;i<n;i++){if(arr[i]>x){for(j=n-1;j>=i;j--){......
  • 杨辉三角c语言
    #include<stdio.h>#defineM10#defineN10intmain(){  inta[M][N],i,j;  for(i=0;i<M;i++) {  for(j=0;j<=i;j++)                     //先取9*9列的数都赋值为一,再取其中1/2的部分  a[i][j]=1;      ......