A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


---------程序的结构及分类-----------

结构体化程序是一个设计思想,规定了一套方法,使程序具有合理的结构,以保证和验证程序的正确性.这种方法要求程序设计者不能随心所欲地编写程序,而要按照一定的结构形式来设计和编写程序.它的一个重要目的是使程序具有良好的结构,使程序易于设计,易于 理解,易于调试修改,以提高设计和维护程序工作的效率.

1)顺序结构
2)分支结构
3)循环结构


--------if语句-----------

一般形式(第一种形式):表示如果表达式为真,执行语句块1,否则不执行。

一:     if

if(表达式)
{
   
    语句块1
   
} 后续语句;


二:    if else
if ...else ...语句使用
如果表达式为真,则执行语句块1,否则执行语句块2
if(表达式)
{
    语句块1
   
}else{
   
    语句块2
}


三:      else if
如果表达式1为真,则执行语句块1,否则判断表达式2,如果为真执行语句块2,否则再判断 表达式3,如果真执行语句块3, 当表达式1、2、3都不满足,会执行最后一个else语句。
if(表达式1)
{
    语句块1
}else if(表达式2){
    语句块2
}else if(表达式3){
    语句块3
}else{
    语句块4
}


可以理解为:判断+选择



if(表达式1)
{
    语句块1
}else if(表达式2){
    语句块2
}else if(表达式3){
    语句块3
}




四.if(表达式)   省略括号

if(表达式)
    语句1;
    语句2;

if(表达式)
{
    语句1;
}
    语句2;


区分

if(表达式);
语句1;
语句2;

if(表达式)
{
   
}
语句1;
语句2;


只有一个分支执行
int a=5;

if (a>1) {
    printf("a>1\n");
}else if(a++){
    printf("a>2\n");
}else if(a>3){
    printf("a>3\n");


---------------------
注意点:
   
1.分支语句只会执行其中一个分支
2.省略括号只对下一条语句有效
    if(表达式){
    语句1;
    }
    语句2;
3.分支语句可以嵌套
    if(表达式1){
        
        if(表达式2){
            
        }
        
    }else{
        
    }
4.省略括号后下一句不允许定义变量
    if(表达式){
    int a = 0;
        
        
    }

   
5.==判断的时候建议常量写在前面
   
    int a = 0;
   
    if(0 == a){
        ......
    }
   
    if(a = 0){
        
       ....
        
    }
--------switch分支语句-----------
1)使用格式
switch(表达式){          //switch 表达式      必须是  整型常量,整型变量或者整型表达式
case 常量1: 语句1;  //case   常量表达式  必须是整型 常量
case 常量表达式2: 语句2; ...
case 常量表达式n: 语句n;
default: 语句n+1;
}
其语义是:
计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如 表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
---------case语句的穿透问题-----------
case语句执行的过程中,一旦进入某个分支后就会一直执行到switch结束。
为了避免上述情况,使用break语句,可以跳出switch语句.



---------if分支和switch分支的选择---------
   
1)分支比较多且无法穷尽或进行大量列举 时最好用if
2)如果分支数量不是很多,但是使用if代码代码量比较大的时候,可以选用switch

if     可以理解为   判断语句   判断性为主
switch            选择语句   选择性为主
   

--------switch分支值得注意的地方---------
1) 表达式的类型(case语句后的值)必须是整型或可以转变为整型的值 (byte、short、char和int类型)。
整形变量    整形常量   返回值是整形的表达式   可以装换为int类型的表达式
2) 功能代码部分可以写任意多句。
3) case语句可以有任意多句,可以不用加括号“{}”
4) break关键字的意思是中断,指结束switch语句,break语句为可选。



1)case的值1、值2...值n只能为整型常量(整数),不能为变量。
2)case后面不可以直接定义变量
如果在case后面定义的变量必须加上大括号

执行流程:在执行的过程中,如果遇到break语句,则跳出switch语句。如果没有遇到break 语句,则一直执行到switch语句的结束。

   
   
   
   
   
   
   

    while(b<3){
        
        while (a<10) {
            
            if(5==a){
                a++;
                continue;
                 a++;在同一个作用域下continue下面不能写代码.因为不会执行.
            }
            
            如果碰到break无论条件满足与否,循环立刻结束.
            if (8==a) {
                break;
            }
            
            printf("第%d次 ",a);
            printf("----hello world!\n");
            a++;
        }
        
        if (2==b) {
            break;
        }
        
        printf("外循环打印了\n");
        b++;
    }


------循环结构-----------
循环结构是程序中一种很重要的结构。
其特点是,在给定条件成立时,反复执行某程序段, 直到条件不成立为止。给定的条件称为循环条件,
反复执行的程序段称为循环体。
循环结构简单来说就是:循环是一次又一次的执行相同的代码块

while语句;
do-while语句;
for语句;

一般来说一个循环需要以下几部分构成:
1)循环控制条件 循环退出的主要依据,来控制循环到底什么时候退出
2)循环体      循环的过程中重复执行的代码段
3)能够让循环结束的语句(递增、递减、真、假等) 能够让循环条件为假的依据,否则退出循环
--------while循环-----------
while ( 条件表达式 )
{
    语句1;
    语句2;
    ....(让条件表达式为假)
}


1)while循环的特点:
如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行

2)while语句的语义是:
如果条件成立,就会执行循环体中的语句“循环体”。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环
   
-------break-----------
break和continue语句都可以用在循环中,用来跳出循环(结束循环);
break语句还可以用 在switch语句中,用来跳出switch语句。

当break语句用于
do
while、
for、
while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与while语句联在一起,即满足条件时便跳出循环。
注意:
// if(表达式)else{ ...... break;......}
1)break语句对if-else的条件语句不起作用;
2)在多层循环中,一个break语句只向外跳一层。
--------continue-----------
continue语句的作用是跳过循环体中剩余的语句而继续下一次。
continue语句只用在 for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。
   
    while的用法:
        while(表达式1){
            ......
            if(表达式2) break;
            ...... }

continue的用法:
while(表达式1){
    ......
    if(表达式2) continue;
    ...... }



--------while的死循环-----------
死循环:就是一直都执行循环体中的代码,不会退出
while(条件);
1)不知道要循环的次数的时候使用最佳 常常妙用死循环
2)在某个范围內查找满足条件的值
   
    终端终止操作:   control+c


---------do-while-----------

while(条件){
    语句块;
}
当型循环:当条件满足的时候,再去执行循环体


do {
    语句1;
    语句2; ....
} while ( 条件 );
直到型循环:先执行循环体,然后判断条件,直到条件为假就结束

1)do...while语句的语义
2)do-while循环的特点:
不管while中的条件是否成立,循环体中的语句至少会被执行一遍

对比:
while    是先判断再执行
do-while 是先执行再判断
当循环条件第一次判断不为假的时候,while和do-while执行的次数相同,为假,do-while会执行一次
   
   
   
   
   
   
--------for循环-----------
一般形式:
for(表达式1;表达式2;表达式3) {语句;}

for循环执行过程
(1) 先求解表达式1。
(2) 求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下 面 第(3)步。若为假(值为0),则结束循环,转到第(5)步。
(3) 求解表达式3。
(4) 转回上面第(2)步骤继续执行。
(5) 循环结束,执行for语句下面的一个语

for语句常见的形式:

for(循环变量赋初值;循环条件;循环变量增值)
    for(int i = 0;i<10;i++){
        语句块;
    }

---------for循环值得注意的地方-----------
1)表达式省略(三个表达式都可以省略)
如:for(; ;) 语句相当于while(1) 语句

2)循环控制无关的任意表达式
表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达 式,中间用逗号间隔。
for(int i=1,j=0;i<=100;i++,i++)

   
---------for循环的嵌套-----------

第一种理解方式:把打印一行的代码,执行了5次
for (int j=0; j<5; j++) {
打印一行 * ,有5个

for(int i=0;i<5;i++){
    printf("*\t");
}

printf("\n");
}
外层控制行数,里层控制列数

1 个回复

倒序浏览
6666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马