还在为C语言中的for while switch if语句而感到困惑吗?在这帮您轻松解决。

总所周知C语言中有除顺序结构外的循环和选择结构,在这就是要介绍循环和选择结构。

if语句

if语句常和else放在一起使用并且它们也可以组合成if else来一块使用下面就用一些简单的代码来介绍它们的用法。

int main()
{
    int a = 1;
    if (a == 1)//这一句的意思是如果a的值是1就执行打印  你好
        printf("你好\n");//  \n表示换行    
    return 0;
}

想要执行 if 语句就要让 if 后面的( a==1)中的 a==1 条件成立即a==1的逻辑为真在C语言中0表示假,非0表示真。下面是if 和else组合在一起用

int main()
{
    int a = 1;
    if (a == 1)//这一句的意思是如果a的值是1就执行打印  你好
        printf("你好\n");//  \n表示换行    
    printf("hello\n");
    return 0;
}

下面是if     else if     else放在一起使用的情况 

int main()
{
    int a = 1;
    if (a == 1)//这一句的意思是如果a的值是1就执行打印  你好
        printf("你好\n");//  \n表示换行    
    else if (a == 2)
        printf("hello\n");//如果a等于2就打印hello
    else
        printf("你好hello\n");//如果a既不等于1也不等于2就打印 你好hello
    return 0;
}

下面的代码向我们展示了if      else if     else可以多写,即可以在 if 和 else if 之间添加 if 语句当然也可以添加 else if 语句在最后的 else上面。并且这就涉及到了 if 和 else 的匹配问题。在下面我们来谈一谈。

int main()
{
    int a = 1;
    int b = 2;
    if (a == 1)//这一句的意思是如果a的值是1就执行打印  你好
        printf("你好\n");//  \n表示换行    
    if (b == 2)
        printf("b==2\n");//这个if是与下面的else if和else匹配在一起的
    else if (a == 2)
        printf("hello\n");//如果a等于2就打印hello
    else
        printf("你好hello\n");//如果a既不等于1也不等于2就打印 你好hello
    return 0;
}

不知道正在读文章的你觉得下面代码的结果是什么呢?

int main()
{
    int a = 2;
    int b = 1;
    if (a == 1)
        printf("你好\n");
        if (a == 2 && b == 1)
            printf("nihao\n");
    else
        printf("你好nihao\n");
    return 0;
}

可能有人会觉得上面的程序会输出 你好nihao 但很遗憾结果是 nihao 这是为什么呢?原因是 else 会和与它最近的一个  if 相匹配并且 else if 也是如此

这里还要提醒一下正在阅读的您注意不要把a==1写成了a=1否则就会将a的值变成1且该表达式的值为真,使得条件成立,且在下面要介绍的循环语句中有可能会造成死循环

switch语句

switch 和 case常放一起使用

switch语句的执行过程首先是执行switch(变量)中的变量然后根据变量的值去和case后面的值匹配,如果值相同就进入这个case语句。

例如

int main()
{
	int a = 1;
	switch (a)
	{
	case 1:printf("1号\n"); break;
	case 2:printf("2号\n"); break;
	case 3:printf("3号\n"); break;
	default:printf("输入错误\n"); break;
	}

	return 0;
}

上面的代码的结果是输出了 1号 的结果。注意在每一条case句的后面要空一格在添上成立的条件且条件的后面要加上冒号,否则就是语法错误!在后面的break语句可以添加也可以不添加,但成的结果会是不一样的。有break语句意味着执行到了break时会跳出switch语句到达大括号的外面,如果没有break就会接着执行下一个case语句,也就是说如果上述代码没有break就会在打印了 1号后还会打印2号,3号直到break或结束才会停止。在上述代码中的default的意思是如果case后面的条件没有一个满足就会执行default后面的结果,且case后面的条件只能是char整型不能是浮点型。注意default可以在switch中的任意一个位置。

还有break可以在switch和循环语句中。

在讲完了选择结构后接下来是循环结构

while语句

int main()
{
	int a = 0;
	while (a<10)//循环继续的条件
	{
		printf("%d\n", a);
		a++;//使a的值加一
	}
	//以上的代码结果是0 ~9的数
	return 0;
}

while的条件也是以真假值来判断的和上述的 if 语句一样。

while循环的执行过程是先进行条件判断再执行循环体,当循环体的内容执行了一次后就会再进行条件判断,如果条件成立就又会执行一遍循环体内的内容,之后再进行条件判断如果条件不成立就不再执行。

在这里还要讲解一个continue关键字这个关键字的作用是跳过此次循环进入下一次循环。例如

int main()
{
	int a = 0;
	while (a<10)//循环继续的条件
	{
		a++;
		if (a == 5)
			continue;
        printf("%d\n", a);
	}
	return 0;
}

上述代码的结果是1 2 3 4 6 7 8 9 10 continue 的作用就如上述所述在a的值为5时直接又回到了条件判断而没有输出5。

while和break


int main()
{
	int a = 0;
	while(a<10)
	{
		if (a == 5)
			break;
		a++;
		printf("%d ", a);
	}
	return 0;
}

break是用来跳出循环的,所以上述代码的结果是 1 2 3 4 5.注意break不能单独和if放一起,一定要在循环中或switch语句中!

你能用你刚学习的知识去判断下面的程序结果吗?

int main()
{
	int a = 0;
	while (a<10)//循环继续的条件
	{
		printf("%d\n", a);
		if (a == 5)
			continue;
		a++;//使a的值加一
	
	}
	return 0;
}

上述代码的结果是 0 1 2 3 4 5 5 5 5 5 5 5......也就是说在a的值为5的时候由于存在continue导致该循环不断的进入下一次循环,但a的值却又没有增加就造成了死循环。

没有作对的你也不用灰心,只要记住了不会再犯这个错误就好了。

和while一样的还有一个do while循环

int main()
{
	int a = 1;
	do
	{
		printf("%d\n", a);
		a++;
	} while (a <= 10);
	return 0;
}

该循环的结果是1 2 3 4 5 6 7 8 9 10。do while 和while循环其实没有很大的区别最主要的区别是do while是先执行循环体内的内容再去进行条件判断,而while是先进行条件判断再去执行循环体内的内容!

for循环

for循环的括号中有三个表达式for(表达式1;表达式2;表达式3)

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

该代码的结果是0 1 2 3 4 5 6 7 8 9

for循环的执行过程和while循环是不一样的for循环是先进行表达式1再进行条件判断,如果条件成立就进行循环体内的内容,然后再执行表达式3之后再进行表达式2,如果表达式2成立就进行循环体中的内容,之后进行表达式3,再是表达式2如果表达式2不成立就不再执行循环。

continue和break在for循环中的区别

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

上述代码的结果是 1 2 3 4 6 7 8 9。 

break在for中

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

上述代码的结果是1 2 3 4.

这说明了continue会结束本次循环进入下次循环,而break是结束了整个for循环,且如果有两个for循环嵌套的话是会结束离它最近的一个for循环

int main()
{
	int a = 0;
	int b = 0;
	for (a = 1; a < 10; a++)
	{
		for (b = 1; b <= 3; b++)
		{
			if (b == 2)
				break;
			printf("%d ",b);
		 }
	 }
	return 0;
}

上述代码的结果是9个1这说明了当b等于2时就跳出内部的那个for循环而不跳出外面的,说明break跳出离它近的那个for循环。

while中的一个continue和for中的一个continue区别

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

上述的代码结果是1 2 3 4 5 6 7 8 9.和while不一样,在while中上述代码会死循环,而在for中并不会,这是因为while和for的执行过程不同。

好了,到这里就结束了,谢谢您的阅读。

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值