前言
条件分支与循环是入门C语言的一项必备技能,下面由我来给大家讲述我对条件分支与循环的见解。
一、条件分支
1. if语句
下面用代码来介绍:
#include<stdio.h>
int main()
{
int a=0;
int b=1;
if(a)
{
printf("I'm a pig");
//这里不会打印I'm a pig,因为if()中的值或者表达式如果为0,则判断为假,不进行操作
}
if(b)
{
printf("I'm a dog");
//这里会打印I'm a dog,因为if()中的值或者表达式如果非0,则判断为真,进行{}中的操作
}
return 0;
}
2.if…else…语句
下面用代码来介绍:
#include<stdio.h>
int main()
{
int a=0;
if(a)
{
printf("I'm a pig");
//这里不会打印I'm a pig,因为if()中的值或者表达式如果为0,则判断为假,不进行操作
}
else
{
printf("I'm a dog");
//这里会打印I'm a dog,因为如果if为假,else就一定为真,会进行{}中的操作
}
return 0;
}
#include<stdio.h>
int main()
{
int a=0;
if(b)
{
printf("I'm a pig");
//这里会打印I'm a pig,因为if()中的值或者表达式如果非0,则判断为真,进行操作
}
else
{
printf("I'm a dog");
//这里不会打印I'm a dog,因为如果if为真,else就一定为假,不会进行{}中的操作
}
return 0;
}
3.else…if…语句
下面用代码来介绍:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (a == 1)
{
printf("hehe\n");
//如果a为1的话,打印hehe
}
else if (a == 2)
{
printf("haha\n");
//在if不成立的前提下,如果a为2,打印haha
}
else
{
printf("oyi\n");
//上述条件都不成立时,打印oyi
}
//当然,else…if…语句允许出现多次else if
system("pause");
return 0;
}
4.else与if的配对问题
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
你猜猜输出的结果是啥。
芜湖,按住CTRL+F5你会发现啥都没打印。为啥呐?我a!=1可以执行else语句啊,为什么没打印haha?原因是else与最近的if配对。你又会提问了:else不是与上面的if对齐了吗,不就是与它配对吗?诶,还真不是!在VS的环境下,它会帮你自动对齐互相配对的if和else,但是在某些古老原始的编译器下,是没有自动对齐的。如果想实现haha的打印,可以康康下面的代码:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}
按住CTRL+F5运行代码,就会在黑窗口上打印haha。
二、循环
1.while语句
请看以下代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 1;
while (i)
{
printf("hehe\n");
}
system("pause");
return 0;
}
在while语句中()内为循环条件,可以是常量(此时进入死循环),也可以是一个表达式,一个变量。在上述代码中实现了对hehe的循环打印,黑窗口中会死循环的打印hehe,如果想要在某个情况下终止程序,可以参考以下代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 1;
while (i<100)
{
printf("hehe\n");
i++;
}
system("pause");
return 0;
}
在上面的代码中优化了循环的条件,将循环次数进行了限制,为99次。
2.for语句
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 1;
for(i = 1; i < 100; i++)
{
printf("hehe\n");
}
system("pause");
return 0;
}
在for语句中()内第一个分号前是初始化条件,第一个与第二个分号间为循环条件,第二个分号后面是每一次循环结束后执行的操作。
3.do…while语句
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 1;
do
{
printf("hehe\n");
i++;
} while (i < 100);//注意:这里的while()后面跟了;哦
system("pause");
return 0;
}
总结
以上就是今天所讲的内容——简单地介绍了条件分支与循环,如有不当之处,欢迎指正!