1.使用if...else有条件的执行

  在一些时候语句需要进行有条件的执行。比如如果输入"Y"就执行赋值语句N=1;否则N=0:

  

#include<iostream>
using namespace std;
int main ()
{
char Judge='N';
int N;
cin>>Judge;
if(Judge=='Y')
{
N=;
}//if条件下一条语句时{}可省略,此处给出
else
{
N=;
}
   cout<<N<<endl;
return ;
}

   if...else是可以嵌套使用的,下面例出一个模板:

if(expression1)
{
DoSomething;
if(expression2)
DoSomething2;
else
DoSomethingElse2;
}
else
{
DoSomething;
if(expression3)
DoSomething3;
}

   

2.使用switch...case进行条件处理

  switch...case语法结构如下:

  switch(expression)

  {

    case LabelA:

      DoSomethingA;

      break;

    case LabelB:

      DoSomethingB;

      break;

    default:

      break;

  }

  其语法就是计算expression的值并与case的标签对比,如果值相同就执行该case下的语句,不相同就与下一个标签作比较直至到也没有相同的就执行default正常退出。

  下面给出输入阿拉伯数字1~5给出相应的希腊数字的代码示例;

int Input_N;
cin>>Iput_N;
switch(Input_N)
{
case 1:
    cout<<"I"<<endl;
    break;
   case 2:
    cout<<"II"<<endl;
    break;
   case 3:
    cout<<"III"<<endl;
    break;
   case 4:
    cout<<"IV"<<endl;
    break;
   case 5:
    cout<<"V"<<endl;
    break;
   default:
    break;
}

3. ?:条件运算符

  expression ?: expression1:expression2;

  问号前表达式成立则选择计算expression1否则选择计算expression2。

  使用条件运算符?:选出两个数之间最大的一个:

int Number1=,Number2=;
cin>>Number1;
cin>>Number2;
int Max;
Max=(Number1>Number2)?Number1:Number2;
cout<<Max<<endl;

4. while循环

  while循环语法结构如下:

    while(expression)

    {

      StatementBlock;

    }

  只要expression为true,就将执行该语句块,所以在循环过程中会出现expression为false的情况,否则循环很有可能永不停息的执行下去。

5. do while循环

  do while循环与while的循环的区别在于是否在执行语句前进行了条件判断,do while循环保证了代码块语句至少被执行一次。

  do while循环语法结构如下:

    do

    {

      StatementBlock;

    }while(expression);

  注意:while循环和do...while的区别源自于编译器的顺序编译,do...while是有句末分号的。

6. for循环

  for语句是一种更加复杂的循环,它允许我们指定执行一次的初始化语句(通常用来初始化计数器),判断退出条件(通常使用计数器),还可以在循环末尾执行一次操作(通常为计数器累加操作)。

  例如循环为数组输入输出各值的代码:

int i, a[4];
for (i = 0; i < 4; i++)//初始化语句,检查退出条件语句,计数器累加操作语句
{
  cin >> a[i];
}
for (i = 0;i < 4; i++)
{
  cout <<"第"<< i + 1 << "个数: "<<a[i] << endl;
}

  注意:for语句中初始化语句、条件语句、操作语句都是根据需要可选的。

7. continue 和 break

   while ,do...while 和 for循环都会有条件语句,如果条件为假就跳出循环,如果条件一直为真就会一直循环就是死循环。在很多时候死循环会导致程序崩溃,这是我们不期望发生的事情,而使用break

  和continue就可以修改循环行为,包括死循环。我们可以给循环一个条件使其使用break跳出循环,continue会使执行跳到循环开头,重新评估循环条件。

  注意:尽量不要使用break或continue,因为它们影响代码直观性,除非遇到不使用它们程序就无法正确或高效的运行的情况。

   

C++学习 之 控制程序流程 (笔记)的更多相关文章

  1. 重新开始学习javase_控制程序流程

    @学习thinking in java 二.控制程序流程 负数使用 Java 运算符:运算符以一个或多个自变量为基础,可生成一个新值.自变量采用与原始方法调用不同的一种形式,但效果是相同的.根据以前写 ...

  2. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  3. 学习Logistic Regression的笔记与理解(转)

    学习Logistic Regression的笔记与理解 1.首先从结果往前来看下how logistic regression make predictions. 设我们某个测试数据为X(x0,x1, ...

  4. 转载-《Python学习手册》读书笔记

    转载-<Python学习手册>读书笔记 http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html

  5. python学习第五次笔记

    python学习第五次笔记 列表的缺点 1.列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2.列表只能按照顺序存储,数据与数据之间关联性不强 数据类型划分 数据类型:可变数据 ...

  6. 前端学习:JS(面向对象)代码笔记

    前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...

  7. activiti学习6:启动流程后动态获取流程图

    目录 activiti学习6:启动流程后动态获取流程图 一.绘图原理 二.根据流程定义id绘图 三.根据流程实例id绘图 3.1 基本原理 3.2 当前节点的获取 3.3 走过的节点的获取 3.4 绘 ...

  8. activiti学习5:开启流程和流程前进

    目录 activiti学习5:开启流程和流程前进 一.流程和任务的关系 二.开启流程 2.1根据流程定义key开启流程 三.查询用户任务 3.1 TaskQuery 四.完成任务 activiti学习 ...

  9. 《Data Structures and Algorithm Analysis in C》学习与刷题笔记

    <Data Structures and Algorithm Analysis in C>学习与刷题笔记 为什么要学习DSAAC? 某个月黑风高的夜晚,下班的我走在黯淡无光.冷清无人的冲之 ...

随机推荐

  1. CodeForces–833B--The Bakery(线段树&&DP)

    B. The Bakery time limit per test 2.5 seconds memory limit per test 256 megabytes input standard inp ...

  2. git commit -m "XX"报错 pre -commit hook failed (add --no-verify to bypass)问题

    在同步本地文件到线上仓库的时候 报错 pre -commit hook failed (add --no-verify to bypass) 当你在终端输入git commit -m "xx ...

  3. Android学习_7/26

    四种基本布局 1. 线性布局(LinearLayout) android:layout_gravity:指定控件在布局中的对齐方式 android:gravity:指定文字在控件中的对齐方式 andr ...

  4. mysql基础知识语法汇总整理(二)

    mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...

  5. ajax 415

    ajax 发送post请求是出现415错误,是ajax的格式有问题,如下. $.ajax({ type: 'POST', url: '/login', data: { "username&q ...

  6. PHP7 的部分新特性

    1. 运算符(NULL 合并运算符) $a = $_GET['a'] ?? 1; 它相当于: <php$a = isset($_GET['a']) ? $_GET['a'] : 1; 我们知道三 ...

  7. Linux 特殊权限

    Linux 有三个高级权限suid,sgid,sticky. 1.suid suid 属性只能运用在可执行文件上,含义是开放文件所有者的权限给其他用户,即当用户执行该执行文件时,会拥有该执行文件所有者 ...

  8. excel怎么只打印某页?excel怎么只打印某几页

    有时候我们需要打印的excel文件,内容较多有好几页,而我们只需要打印里面的部分内容,为了减少纸张.碳粉的浪费,我们怎样精准打印某页或某几页呢?   工具/原料   Excel / WPS软件 方法/ ...

  9. 记录一次python的mysqlclient依赖库报错问题

    描述: 最开始在测试环境装了mysql8,用来作为airflow后端的metadata存储: 在装了mysql8之后,通过pip3安装了mysqlclient=1.3.14:但是安装过程是在单独的ve ...

  10. 码云上webide怎么提交

    修改后想提交,它会提示:“暂存文件后才能提交”, 我拿放大镜找遍了整个界面也没找到“暂存”按钮, 原来,文件旁边那个+号就是暂存,好歹鼠标方式去之后给个tip,服了. 点一下这个加号,提交按钮就可用了 ...