c语言包括顺序结构,选择结构,循环结构,总的来说,选择结构通过if,switch实现,循环结构通过for,while,do while实现。接下来我们就总结一下他们的特点和作用吧!
目录
其实还有一个问题,就是一定要注意各个大括号的作用和范围,像这个代码中我出现了一个小失误就是printf要在for循环之外,在整个代码的最后,否则会使代码错误
一.选择结构
1.if else语句
(1).语法形式
if(表达式)
语句1
else
语句2
(2).举例
判断一个数的奇偶性
可知当输入一个整数时判断奇偶,只有2种情况,如下图所示:
判断成年
值得注意的是,如果if后面跟多个语句,也就是说,要输出不只一个语句时要加大括号{},因此,在日常写代码时,养成在if,else后面加大括号(即使只有一个语句),可以减少错误的几率。
当然,除了上面那些极为简单的程序外,还有更多的代码是更复杂的。例如,
判断一个数是正数还是负数,如果是正数,是奇数还是偶数
这里再插入一个例子,可以对上面的知识做一个总结练习:
else总是与最近的配对
2.switch语句
选择结构的另一种
(1)一般形式
switch(整形表达式)
case 1;
printf();
break;
case 2
printf();
break;
default
printf();
case后面的1,2必须是整型常量表达式 case和后面的数字之间一定要有空格
注意:字符是由ASCII存储的,所以字符也是整型
case 与default的顺序没有要求
(2)例子
输入一个整数值,计算除3之后的余数
打印对应的星期几
一、循环结构
首先要了解一下,循环结构有for结构,while结构和do while结构
1.for
1.一般形式
for(表达式1;表达式2;表达式3;)
{
语句
}
注意:表达式1用于循环变量的初始化
表达式2用于循环结束条件的判断
表达式3用于循环变量的调整
表达式1只进行一次,2之后进行语句,最后进行3,然后重复2,3,2,3
2.while
(1)一般形式
while(表达式)
语句
//输入一个正整数,逆序打印这个整数的每一位
int main()
{
int n = 0;
scanf("%d", &n);
while (n)
{
printf("%d ", n % 10);
n /= 10;
}
return 0;
}
3.do while结构
(1)一般形式
do
语句
while(表达式)
//输入一个正整数,计算这个整数是几位数
int main()
{
int n = 0;
int count = 0;
scanf("%d", &n);
do
{
count++;
n /= 10;
} while (n);
printf("%d", count);
return 0;
}
当然,while与do while的区别是while先判断后运行,而do while则是先运行再判断,因此,do while至少循环一次
三.break和continue
1.break在选择结构中就有提到,而在循环中也适用。break的作用是跳出循环且永久的终止循环
在switch语句中放在case后面
switch,while,for,do while
2.continue的作用是跳出本次循环,不再执行后面的代码,直接去判断部分,循环继续。
switch,while,for,do while
四.goto
goto语句可以实现在同一个函数里面跳转到goto这里
int main()
{
printf("hehe\n");
goto next;
printf("haha\n");
next:
printf("oioi\n");
return 0;
}
五.练习
1.打印1~10
while
int main()
{
int n = 1;
while (n < 11)
{
printf("%d ", n);
n++;
}
return 0;
}
for
int main()
{
for (int n = 1; n < 11; n++)
{
printf("%d ", n);
}
return 0;
}
do while
int main()
{
int n = 1;
do
{
printf("%d ", n);
n = n + 1;
} while(n < 11);
return 0;
}
2.输入一个正的整数,逆序打印这个数的每一位
输入1234 输出4321
int main()
{
int n,m;
scanf("%d", &n);
for ( n; n != 0 ; n = n / 10)
{
m = n % 10;
printf("%d", m);
}
return 0;
}
3.计算1~100之间的3的倍数的和
int main()
{
int n = 3,sum;
for (n = 3, sum = 0; n < 100; n += 3)
{
sum += n;
}
printf("%d\n", sum);
return 0;
}
4.输入一个正整数,计算这个数是几位数
int main()
{
int m, n = 0;
scanf("%d", &m);
while(m)
{
n = n + 1;
m = m / 10;
}
printf("%d\n", n);
return 0;
}
5.找出100~200之间的素数并打印出来
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
int j = 0;
int flag = 1;
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}