系列文章目录
C语言基本语法——循环篇(三种常见的循环)
文章目录
前言
对于C语言中的选择和循环,你知道该怎么学习吗?
你真的了解分支吗?分支该怎么使用呢?
对于学习C语言的小白来说,分支语句或许是一个比较困难的学习内容,因此作者希望小白们通过本文的阅读,可以了解到分支语句是如何使用的。(配合循环篇食用效果更佳哎)
一、语句是什么?
语句:构成程序的元素。控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。本文此次介绍选择结构,选择结构也叫分支语句:if语句、switch语句。
二、分支语句
1. if语句
代码如下:
#include <stdio.h> int main() { int n = 0; scanf("%d", &n); int i = 0; int count = 0; for (i = 1; i <= n; i++)//循环 { if (i % 2 == 1)//表达式 { //语句 count++; printf("%d ", i); } } printf("count=%d", count); return 0; }
这是一个简单的求解给定数值范围内的奇数问题,其中的if语句,为我们提供了奇数的判断,如果i%2==1,则执行count++和打印的语句。
注:if如果没有使用代码块,其后面只能有一条语句。
如果表达式的结果为真,则语句执行。
在 C 语言中如何表示真假?0 表示假,非 0 表示真。
语法结构:
if ( 表达式 )语句 ;
表现形式:
if ( 表达式 )语句 1 ;else语句 2 ;// 多分支if ( 表达式 1 )语句 1 ;else if ( 表达式 2 )语句 2 ;else语句 3 ;
1.1 悬空else
代码如下:
int main()
{
int a = 0;
int b = 5;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
此处输出结果为什么呢?
hehe还是haha呢?还是什么都没有呢?jain
输出结果:什么都没有
原因:else 和离他最近的if进行匹配,导致第一个If没有匹配的else,a!=0,if判断条件为假,其后面的语句不执行,无输出结果。
1.2 if书写形式
// 代码 1if ( condition ) {return x ;}return y ;// 代码 2if ( condition ){return x ;}else{return y ;}
代码1和代码2实际上是等效的,如果条件满足,则返回x,否则,返回y,但是第一个代码的书写方式给读者的感受是如果条件满足,则输出x,然后再输出y,总之,给人的感觉就是y是一定会输出的,所以由此可见,不同的if书写方式,会产生不同的理解,我们要写出好的,简洁易懂的代码。
2.switch语句
2.1 简单的switch 语句
代码如下:
int main()
{
int score = 0;
scanf("%d", &score);
switch (score / 10)
{
case 9:
{
printf("A");
break;
}
case 8:
{
printf("B");
break;
}
case 7:
{
printf("C");
break;
}
case 6:
{
printf("D");
break;
}
default:
printf("E");
break;
}
return 0;
}
这是一个简单的输出成绩的题目,90-100输出A,80-90输出B,70-80输出C,60-70输出D,其余的输出E。
由此,我们可以看出switch语句适合于多分支的情况,可以将情况简化,代码量大大减少。
语法结构:
switch ( 整型表达式 ){语句项;}
语句项是什么呢?// 是一些 case 语句:// 如下:case 整形常量表达式 :语句 ;
2.2 在switch语句中的break的作用
break语句的实际作用则是把语句列表划分为不同的分支部分。
编程小习惯
在最后一个 case 语句的后面加上一条 break语句。
(之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break 语句)。
2.3 default 子句
如果表达的值与所有的 case标签的值都不匹配的话,其结果就是所有的语句都被跳过。程序并不会终止,也不会报错,因为这种情况在C 中并不认为是个错误。但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?你可以在语句列表中增加一条default 子句,把下面的标签default:写在任何一个 case 标签可以出现的位置。当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。所以,每个 switch 语句中只能出现一条 default 子句。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。
编程小习惯在每个 switch 语句中都放一条 default 子句是个好习惯,甚至可以在后边再加一个 break 。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了分支语句的使用,分支和循环是我们必须要掌握的内容,希望初学者们可以将两者合理结合,写出优异的代码(本文配合上篇循环食用更佳哦)!