C语言知识点小结一

循环结构


1.if循环的三种格式
(1).if语句
若表达式为真则执行下面的语句,否则不执行;

main(){
    int a,b,max;
    printf("\n input two numbers:  ");
    scanf("%d%d", &a,&b);
    max=a;
    if(max<b) { max=b; }
    printf("max=%d", max);
}

(2).if-else语句

 if(表达式)
     语句一;
 else
     语句二;

若表达式的值为真则执行语句一,否则执行语句二。

int a,b;
    printf("\n input two numbers:  ");
    scanf("%d%d", &a,&b);
    if(a>b){
       printf("max=%d\n",a);   //语句一
    }else{
       printf("max=%d\n",b);   //语句二
    }

(3).if-else-if语句
if(表达式1)
语句1;
else if()
语句2;
else if()
语句3;

else if(表达式m)
语句m;
else
语句n;
当某个值为真时则执行对应的语句然后跳到整个if语句之外继续执行;

#include <stdio.h>
#include <stdlib.h>
int main(){
	char c;
	printf("input a character   ");
	c=getchar();
	if(c<32)
	    printf("This is a control character\n");
	else if(c>='0' && c<='9')
	    printf("This is a digit\n");
    else if(c>='A' && c<='Z')
        printf("This is a capital letter\n");
    else if(c>='a' && c<='z')
        printf("This is a samll letter\n");
    else 
        printf("This is a other character\n");
} 
   }
}

首先比较一下‘\0’和‘0’的区别。有一个共同点就是它们都是字符,在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节。请翻开你的ASCII字符集表吧,一般在你的C语言教材的附录上,没有的话网上查查哦。请看第一个ASCII码,对是0,对应的字符是(Null),其实就是‘\0’,即空字符。判断一个字符串是否结束的标志就是看是否遇到‘\0’,如果遇到‘\0’,则表示字符串结束。而字符‘0’对应的ASCII码是48,48对应的十六进制数就是0x30,通常我们在编程的时候,用字符转化为数字的时候经常要用到,比如要将‘8’转换为数字8,在语句中这样写就可以了,“
8+‘0’”。这里的8就是数字。字符‘0’和数字0的区别:前者是字符常量,后者是整形常量,它们的含义和在计算机中的存储方式截然不同。但是字符常量可以像整数一样在程序中参与相关运算。例如:‘9’-3;。哈哈,是不是柳暗花明又一村啊。
接下来我们比较一下“0”和‘0’的区别。首先“0”是字符串常量,字符串常量是由一对双引号括起的字符序列。例如:“CHINA”,“I LOVE YOU”,“123”等都是合法的字符串常量。‘0’是字符常量,字符串常量和字符常量是不同的量。1:字符常量由单引号括起来;字符串常量由双引号括起来。2:字符常量只能是单个字符;字符串常量则可以含一个或多个字符。这里先介绍表达上的主要区别,在运用中还有存储空间的不同以及赋值方式的不同等等。这里只是抛砖引玉,具体可参考c语言相关书籍。今特此总结,希望对你有用,谢谢!(此段为引用)

(4).条件运算和条件表达式
运算符:?
表达式1?表达式2:表达式3;
若表达式1为真,则以表达式2的值作为条件表达式的值,否则以表达式3的值作为条件表达式的值。
如:

if(a>b) max=a;
else max=b;

可转化为:

max=a>b?a:b;

2.switch语句

switch(表达式) {
case 常量表达式1: 语句1;
case 常量表达式2: 语句2; …
case 常量表达式3: 语句3;
default : 语句n+1;
}

执行此语句时先计算得到表达式的值,然后逐个与case表达式后面的常量表达式进行比较,若表达式的值与常量表达式的值相等时则执行此表达式,若都不匹配则去执行default后面的语句。

main(){
    int a;
    printf("please input number:");
    scanf("%d", &a);
    switch(a >= 0){
        case a=1: printf("Today is Monday");
        case a=2: printf("Today is Tuesday");
        case a=3: printf("Today is Wednesday");
        case a=4: printf("Today is Thursday");
        case a=5: printf("Today is Friday");
        case a=6: printf("Today is Saturday");
        case a=7: printf("Today is Sunday");
        default: printf("This number is not rigth!");
    }
    return 0;
}

在使用switch语句时还应注意以下几点:
1.在case后的各常量表达式的值不能相同,否则会出现错误。
2.在case后,允许有多个语句,可以不用{}括起来。
3.各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
4.default子句可以省略不用。
5.注意用break跳出switch循环。

3.while循环
(1).while循环

while 语法结构:
while(表达式)
循环语句;

while语句执行的时候,只要满足表达式条件,循环就会一直进行下去,直到条件不满足,跳出循环。

int main(){
	int i = 1;
	while(i <= 10){
		if (i == 6){
			continue;
		}
		printf("%d\n",i);
		i = i + 1;
	}

(2).do…while循环

do{
循环语句;
}while(循环条件)

do…while语句先执行后判断,循环体至少执行一次。

int main(){
    int a = 0;
    printf("请输入相应的值:");
    scanf("%d", &a);
    do{
        a=a+1;
    }while(a<=11);
    printf("%d", a);
    return 0;
}

4.for循环

for(语句一,语句二,语句三){循环体;}

第一个控制表达式在循环开始时执行,且只执行一次。

·第二个控制表达式必须是一个逻辑表达式,且在每次循环迭代开始重复前计算。

·第三个控制表达式,在每一次循环迭代结束时执行。

int main(){
int a = 0;
for(a = 1 ; a<=10 ; a++)
{ 
  printf("%d", a);
}
}

5.break与continue语句
(1).break语句

break是用来跳出循环的,其实在循环中只要遇到break,就停止后面的所有循环,直接终止循环.所有,while语句中的break是用于永久终止循环的。

int main(){
	int a = 1;
	while(a <= 10){
		if (a == 6){
			break;
		}
		printf("%d\n",i);
		i = i + 1;
	}
}

(2).continue语句

continue后边的代码不会再执行,而是直接跳转到while语句的判断部分.进行下一次循环的入口判断。

int main(){
	int a = 1;
	while(a <= 10){
		if (a == 6){
			continue;
			
		}
		printf("%d\n",a);
		a = a + 1;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值