C语言复习巩固(三)

目录

分支和循环语句

 

顺序结构

分支语句(选择结构)

if语句

if语句建议以以下两种方式书写:

 表达式内的关系操作符与逻辑操作符:

 else:

switch语句:

 循环语句:

while语句:

while语句中的break与continue:

 do...while语句

 for语句:

答案:


分支和循环语句

 


顺序结构

分支语句(选择结构)

 

if语句

语法结构:

1.if(表达式)

        语句;

2.if(表达式)

        语句1;

   else

         语句2;

3.if(表达式)

        语句1;

   else if(表达式)

        语句2;

   else 

        语句3;

    *表达式结果为非0(真)则执行语句

     {  }代表代码块

if语句建议以以下两种方式书写:
 

if(5 == a ){//这么写if结构更加清晰明了
   ...;     //变量放在右侧可以避免少写=
}
else{
   ...;
}



注意:“==”与“=”的区别

 表达式内的关系操作符与逻辑操作符:

示例:

 18 <= age <= 30的程序中判断过程是:

 18 <= age (40) 为真   所以左边部分变为1   

  1 <= 30   为真   值为 1

所以if内的语句可以被执行

正确写法:

 else:

 else 与相邻最近的if匹配(就近)

else会与第二个if匹配而不是第一个

 正确的写代码规范十分重要,如下这样写就不会有问题:

 当然也是可以简化的:

switch语句:

 switch(整型常量表达式){   

          case 1:

                       ........;

                       break;

          case 2:

                       ........;

                       break;

           case 3:

                       ........;

                       break;

               ...             

            case n:

                       ........;

                       break;

            default:

                     ........;

                       break;

}

1.switch中必须为整型的常量表达式

2.break语句建议在每个case后加上,避免以后修改时忘记添加

3.default只能出现一次

思考:

#include <stdio.h>
int main() {
	int n = 1;
	int m = 2; 
	switch (n) {
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch (n) {//switch允许嵌套使用            
		case 1:
			n++;
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}
	printf("m = %d, n = %d\n", m, n);
	return 0; 
}

 循环语句:

while语句:

while(表达式){

           循环语句;

}

while语句中的break与continue:

以下给出三个示例

 示例1:

示例2:

程序没有结束,这是一个死循环

示例3:


 do...while语句

do{

       循环语句;

}while(表达式);//分号不要忘记


 for语句:

for(   初始化部分;条件判断部分;调整部分 ){

            循环语句;

}

1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。

2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
 

1. 请问下面的代码中循环体执行几次?

#include <stdio.h> 
int main() {    
    int i = 0;    
    int k = 0;    
    for(i =0,k=0; k=0; i++,k++)        
        k++;    
    return 0; 
}

2.下面的代码会输出什么?

#include<stdio.h>
int main(){
    int i = 0;
    int j = 0;
    for(; i < 10; i++)
        for(; j < 10; j++)
            printf("%d    ",j);
    return 0;
}

代码应该书写规范: 

#include<stdio.h>
int main(){
    int i = 0;
    int j = 0;
    for(i = 0; i < 10; i++)
        for(j = 0; j < 10; j++)
            printf("%d    ",j);
    return 0;
}

答案:

m=5,n=3

0 1 2  3 4 5 6 7 8 9(因为在第一次大循环中j已经变为10 后面的大循环中第二个循环是没有输出的)

发布了19 篇原创文章 · 获赞 88 · 访问量 3337

猜你喜欢

转载自blog.csdn.net/qq_44954010/article/details/103484992