欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++ —— C++三大分支结构(顺序、选择、循环)

程序员文章站 2022-06-24 21:18:31
一、顺序结构的几种常用语句 1、声明语句 程序中所有由程序员给出的名字标识符,包括变量、常量、对象、类、类型、函数、参数等都要在使用前进行说明或定义。一般地,程序中的说明语句并不单纯说明,也往往包含...

一、顺序结构的几种常用语句

1、声明语句

程序中所有由程序员给出的名字标识符,包括变量、常量、对象、类、类型、函数、参数等都要在使用前进行说明或定义。一般地,程序中的说明语句并不单纯说明,也往往包含创建和初始化等工作。如intsize = 0;

2、表达式语句

对数据进行处理和操作的语句。由表达式加分号“;”组成。如:s=(a+b+c)/2;

3、函数调用语句

如printf();语句实现对函数printf的调用。

4、复合语句和空语句

若干语句用一对花括号“{}”括起来组成一个复合语句 。空语句,由一个分号“;”组成 ,不进行任何操作,常用于循环结构中。

二、选择结构(if/switch)

1、if语句【建议每个if/else if用花括号】

①if(表达式) 语句

②if(表达式) 语句1 else 语句2

if(表达式1) 语句1

else if(表达式2) 语句2

else if(表达式n) 语句n ...

else 语句n+1

(1)如果在if、esle后有多条语句,则必须用花括号将这些语句括起来,否则只有后跟的第1条语句有效。

(2)if语句中的条件表达式一般为关系表达式或逻辑表达式,也可以是任意的数值类型。

(3)else总是和离它最近的还没有配对的可见的if匹配。

2、switch语句

switch (表达式)
{ 
case常量表达式 1:语句1;     break;
case常量表达式 2:语句2;     break;
                        ┆
case常量表达式 n:语句n;     break;
default: 语句n+1;          break;
}

(1)switch括号中的表达式只能是整型、字符型枚举型或布尔型;且case后面的常量表达式的类型必须与其匹配。

(2)以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。没有break继续执行后面的case语句。

(3)case值是语句标号,每个case常量表达式的值必须互不相同。

(4)default语句是可选的(为了规范,建议写上)。

三、循环结构

1、for

for(表达式1;表达式2;表达式3)
{
  // 语句
}

第一步:先计算表达式1,一般是个初始值;

第二步:然后执行表达式2的判断;

第三步:如果成立,执行语句,然后执行表达式3,再执行第二步;如果第二步不成立,退出循环;

break作用:中止switch语句的执行,并跳出switch语句;从最近的封闭循环体中跳出,转而执行循环体的下一条语句。【只能用于switch和循环语句中!】

continue作用:结束本次循环,执行表达式3,开始下一轮循环。【并不从循环体中跳出,除非已处于循环结束点】

2、while(与for完全等效)

while(表达式)
{
  // 语句;
}

先判断再执行;while后面的括号和括号中的表达式都必须有。表达式可以是常量或常量表达式。如while(1)死循环,break可以跳出。

3、do...while

do
{ 
  // 语句;
}while (表达式);

先执行循环体语句,后判断条件。表达式为 true时,继续执行循环体

while语句执行顺序:先判断表达式的值,为true 时,再执行语句。

dowhile:先执行再判断语句至少执行一次循环体。

// 判断素数
#include 
using namespace std;

int main(void)
{
  //输入
  long m;
  
  cout << "please input a number:\n";
  cin >> m;
  
  //处理
  for(int i = 2; i < m; i++) //找m的因数
  {
    if(m % i == 0)
    {
      break;
    }
  }
  //输出
  if(m == i) //判断m是否被小于m的数整除
  {
    cout << m << " is prime.\n";
  }
  else
  {
    cout << m << " isn't prime.\n";
  }
  
  return 0;
}