网站备案需要哪些资料网站推广软件免费版
一、分支结构
1.概念
一个 CPP 程序默认是按照代码书写顺序,从上到下依次执行下来的。但是,有时我们需要选择性的执行某些语句,来实现更加复杂的逻辑,这时候就需要分支结构语句的功能来实现。选择合适的分支语句可以显著提高程序的效率。
2.if
语句
(1)基本 if 语句
基本if
语句的结构如下所示:
if(条件)
{语句1;
}
if
语句通过对条件进行求值,若结果为真(非 0),执行语句,否则不执行。如果主体中只有单个语句的话,花括号可以省略。
(2)if...else
语句
if...else
语句的结构如下:
if(条件)
{语句1;
}
else
{语句2;
}
if...else
语句和if
语句类似,else
不需要再写条件。当if
语句的条件满足时会执行if
里的语句,if
语句的条件不满足时会执行else
里的语句。同样,当主体只有一条语句时,可以省略花括号。
(3)else if
语句
if(条件1)
{语句1;
}
else if(条件2)
{语句2;
}
else if(条件3)
{语句3;
}
else
{语句4;
}
else if
语句是if
和else
的组合,对多个条件进行判断并选择不同的语句分支。在最后一条的else
语句不需要再写条件。以上述代码为例,它实现的逻辑是:
- 若条件 1 为真,执行语句 1;
- 否则,若条件 2 为真,执行语句2;
- 否则,若条件 3 为真,执行语句 3;
- 否则,即所有的条件都为假才执行主体 4。
3.switch
语句
switch(选择句)
{case 标签1:语句1;case 标签2:语句2;default:语句3;
}
switch
语句执行时,先求出选择句的值,然后根据选择句的值选择相应的标签,从标签处开始执行。其中,选择句必须是一个整数类型表达式,而标签都必须是整数类型的常量。
switch
语句中还要根据需求加入break
语句进行中断,否则在对应的case
被选择之后接下来的所有case
里的语句和default
里的语句都会被运行。
int i=1;//int为整型的一种
switch(i)
{case 1:cout<<"first"<<endl;break;case 2:cout<<"second"<<endl;break;default:cout<<"others"<<endl;break;
}char j='A';// 这里的 j 的数据类型是字符型 ,但 char 也是属于整数的类型,满足整数类型的表达式的要求
switch(j)
{case 'A':cout<<"first"<<endl;break;case 'B':cout<<"second"<<endl;break;default:cout<<"others"<<endl;break;
}
处理入口编号不能重复,但可以颠倒。也就是说,入口编号的顺序不重要。各个case
(包括default
)的出现次序可任意。
switch
的case
分句中也可以选择性的加花括号。不过要注意的是,如果需要在switch
语句中定义变量,花括号是必须要加的。例如:
int i=1;
switch(i)
{case 1:{int x;cout<<"first:"<<x<<endl;break;}case 2:cout<<"second"<<endl;break;default:cout<<"others"<<endl;break;
}
二、循环结构
1.概念
有时,我们需要做一件事很多遍,甚至有时候循环次数并不是一个常量,而是与输入的变量或者一些计算结果有关系。为了不写过多重复的代码,高效实现重复的功能,我们需要循环语句来帮助。
2.for
语句
for
循环语句的结构如下所示:
for(初始化;判断条件;更新)
{循环体;
}
for
循环语句的执行顺序是:
初始化 → 判断条件 → 循环体 → 更新 → 判断条件 → 循环体 → 更新 → 判断条件 . . . 初始化\rightarrow判断条件\rightarrow循环体\rightarrow更新\rightarrow判断条件\rightarrow循环体\rightarrow更新\rightarrow判断条件... 初始化→判断条件→循环体→更新→判断条件→循环体→更新→判断条件...
如果循环体只有一条语句,那么花括号同样也可以省略。除此以外,for
语句的三个部分中,任何一个部分都可以省略。其中,若省略了判断条件,相当于判断条件永远为真。
例如,读入 n n n 个数我们可以采用以下方法:
for(int i=1;i<=n;i++)
{cin >> a[i];
}
3.while
语句
while
循环语句的结构如下所示:
while(判断条件)
{循环体;
}
while
循环语句的执行顺序是:
判断条件 → 循环体 → 判断条件 → 循环体 . . . 判断条件\rightarrow循环体\rightarrow判断条件\rightarrow循环体... 判断条件→循环体→判断条件→循环体...
如果循环体只有一条语句,那么花括号同样也可以省略。因为,while
语句没有自带初始化和更新,为了不陷入死循环,需要程序员在其他地方实现这两个功能。
例如,验证冰雹猜想:
while(x>1)
{if(x%2==1)x=3*x+1;elsex=x/2;
}
4.do...while
语句
do...while
循环语句的结构如下所示:
do
{循环体;
}while(判断条件);
while
循环语句的执行顺序是:
循环体 → 判断条件 → 循环体 → 判断条件 → 循环体 . . . 循环体\rightarrow判断条件\rightarrow循环体\rightarrow判断条件\rightarrow循环体... 循环体→判断条件→循环体→判断条件→循环体...
如果循环体只有一条语句,那么花括号同样也可以省略。do..while
与while
唯一的不同就在于,do..while
不管判断条件如何,都会先执行一遍循环体。
5.break
与continue
语句
break
语句的作用是退出最近一层的循环。continue
语句的作用是跳过本次循环中,循环体的余下部分。
for(int i=1;i<=n;i++)
{if(i%2==0 || i%3==0)continue;cout<<i<<" ";
}//1,4,5,7,...int x=35;
for(int i=2;i<=n;i++)
{if(x%i==0)break;cout<<i<<" ";
}//2,3,4
三、作业
【入门2】分支结构
【入门3】循环结构