Lecture 3 程序设计初步(一)

利用选择结构,当某个条件成立时做一个事情,不成立时做另一个事情

关系运算和逻辑运算

关系运算用于表达条件,从而能够给出判断

例: amount>=1000,  temperature<35

逻辑运算将多个判断组合起来,形成更复杂的条件

例:  !x<0  ,  x是非负数

      s>=2000&&s<3500  ,  收入在20003500元之间

      t<=15 || t >=35  ,  温度低于-15度或者高于35度  

     y%4==0&&y%100!=0||  y%400==0  ,  y年是闰年

 闰年的条件符合下面两者之一:

能被4整除,但不能被100整除

能被400整除

== :等于(关系运算符)  =:赋值运算符   

:不等于

关系运算符的优先级高于赋值运算符,低于算数运算符,自左向右结合

< , <= , > , >= 的优先级相同且最高,其次是== ,!=

例:c>a+b  等效于 c>(a+b)

a==b<c  等效于 a==(b<c)

关系表达式: 表达式  关系运算符  表达式 (表达式可以为算数,关系,逻辑,赋值,字符表达式)

关系表达式求值结果: 真:1   假:0

Int a=3,b=5;

a==3>(b==5)  为真(1)  因为a==3b==5都为真(1

关系表达式的值是一个逻辑值,即真或假

CC+=中都用1表示真,0表示假

实际中,非0被视为真,0被视为假

逻辑型(布尔)数据 bool  它也是一种数据类型

C++中增加了逻辑型数据

逻辑型常量bool只有两个,即falsetrue

逻辑型变量定义:

bool found, flag=false;

found=true;  赋值  truebool型常量,found也是bool

编译系统处理逻辑型数据时,false0true1,可以进行算数运算

逻辑运算:

C++提供3种逻辑运算符:

&&:逻辑与 (AND

||:逻辑或(OR

!:逻辑非(NOT

逻辑运算符的优先级

> && > ||   

!的优先级高于算术运算符 , &&|| 低于关系运算符

   算术运算符>关系运算符>赋值运算符

例: (a==b||(x==y)  可以写成 a==b || x==y

      (!a)||(a>b)  可以写成 !a || a >b

逻辑表达式:  表达式  逻辑运算符  表达式

逻辑表达式的值是一个逻辑量 真 或者 假

对参与逻辑运算的表达式, 0为假,非为真

选择结构和if语句

单分支选择结构和if语句

流程图表示程序执行的流程,菱形表示的是程序执行的条件,根据表达式的真假

Ps: 求三角形面积的公式:(海伦公式)

s=(a+b+c)/2;

area= sqrt (s*(s-a)*(s-b)*(s-c));

程序中的“自我保护”

单分支是双分支选择结构的特例,单分支:if   双分支:if else 

编写程序,判断某一年是否为闰年

Result 1

#include <iostream>

using namespace std;

int main ()

{

  int a;

  cout<<"请输入年份"<<endl;

  cin>>a;

  if(a%4==0&&a%100!=0||a%400==0)

  cout<<a<<"年为闰年"<<endl;

  else

  cout<<a<<"年不是闰年"<<endl;

    return 0;

}

Result 2(使用逻辑运算符bool

#include <iostream>

using namespace std;

int main ()

{

  int year;

  bool leap;

  cout<<"please enter year:";

  cin>>year;

  if (year%4==0&&year%100!=0||year%400==0)

  {leap=true;

  cout<<year<<" is";}

  else

  {leap=false;

  cout<<year<<" is not";}

 cout<<" a leap year"<<endl;

    return 0;

}

Ifleap)可以替代 ifleap==true

因为leap=true时,leap==true的值还是trueleap=false时,leap==true的值为false

Bool型只存在于C++里,在C语言中,用int替代bool

Bool leap=falsetrue)  等价于  int leap=01

If a=4)与 if a==4)不一样,把a赋值为4后赋值表达式结果为4,非0,为真

自定义函数求根:

void root(float a, float b, float c)

if语句构造多分支选择结构  

If(表达式1)语句1

Else if(表达式2)语句2

Else if(表达式3)语句3

……

Else 语句n

if语句的嵌套

Ifc1

   If c2)语句1

   Else 语句2

Else

   If c3)语句3

   Else 语句4

Ifelse的配对关系:只要有else一定有ifelse总是与它上面最近的,且尚未配对的if进行配对,否则在else之前的if需要用花括号括起来

多分支选择结构和switch语句

Switch(表达式E)   E最好为整型

{

   Case 常量c1:语句1         E==c1

   Case 常量c2:语句2

……

   Case 常量cn:语句n

   Default :语句n+1     c1c2,  c3……都不成立时

}

执行完语句1后必须还需要执行语句2,……

在语句1后加上break后,直接退出,不继续执行下面的语句

Case 常量1:语句1break

Break的灵活运用

Switch(grade)

……

Case ‘A’:

Case ‘B’:

Case ‘C’:cout<<”及格\n”;break;

……

grade的值为‘A,’B’ , ‘C’时执行同一组语句

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值