首页 > 代码库 > 范磊 C++ 第5章 if语句与运算符

范磊 C++ 第5章 if语句与运算符

  1 // section_5.cpp : Defines the entry point for the console application.  2 //范磊 C++ 第5章 if语句与运算符  3   4 #include "stdafx.h"  5 #include "iostream"  6   7   8 void fun1() //5.3表达式的定义  9 //凡是用于计算值得操作,都可以看作是表达式,总能返回一个值 10 { 11     using namespace std; 12  13     int a; 14     int b; 15     int x; 16     int y; 17  18     a = 1; 19     b = 2; 20     x = 3; 21     y = 0; 22  23     y = x = a + b; 24  25     cout << y << "\n" ; 26     cout << "--------------------------------" << "\n" ; 27 } 28  29 void fun2() //5.4运算符的定义 30 { 31     using namespace std; 32  33     int i; 34  35     for(i = 0; i < 60; i++) 36     { 37         if(i % 6 == 0) 38         { 39             cout << "\n" ; 40         } 41         cout << i << "\t" ; 42     } 43     cout << "\n" ; 44     cout << "--------------------------------" << "\n" ; 45 } 46  47 void fun3()  //5.5自加与自减 48 { 49     using namespace std; 50  51     int a; 52     int b; 53  54     a = 1; 55     b = 1; 56  57     cout << ++a << "\n";   //先把a自加了,然后再输出. 58     cout << b++ << "\n";   //先输出了以后,再自加. 59     cout << b << endl;     //输出b自加以后的值. 60     cout << "--------------------------------" << "\n" ; 61 } 62 //有种方法:看++号在哪边? 然后从左往右的顺序使用. 63 //如a++,从左边开始,是先把a用了以后再++,所以用a的时候,++还没执行.所以还是a原来的值. 64 //++a,从左边开始,是先++,所以到了用a时,a是已经进行了++的动作了,所以是a是+1后的值. 65  66 void fun4()  //5.8.1 if+else语句 67 { 68     using namespace std; 69      70     int a; 71     int b; 72  73     cout << "请输入第一个数字:" ; 74     cin >> a ; 75     cout << "清输入第二个数字:" ; 76     cin >> b; 77  78     if(a > b) 79     { 80         cout << "第一个数比第二个数大!" << "\n" ; 81     } 82     else 83     { 84         cout << "第二个数比第一个数大!" << "\n" ; 85     } 86     cout << "该程序执行完毕!" << "\n" ; 87     cout << "--------------------------------" << "\n" ; 88 } 89  90 void fun5()  //5.8.2 else if语句 91 //在if语句中,每个else 都与在上面离它最近的if相匹配 92 { 93     using namespace std; 94  95     int x; 96  97     cout << "请输入一个整数:" ; 98     cin >> x ; 99 100 /* 完全按书本这样的风格有点乱,if 与 else 之间的条例不清晰.101     if(x > 1)102     if(x <100) cout << "x 大于1小于100.\n";103     else cout <<"x大于或者等于100.\n";104     else 105     if(x < 1) cout << "x小于1.\n";106     else cout << "x等于1.\n";107 }108 */109     //用{}把if和else的内容包含起来110     if(x > 1)111     {112         if(x < 100)113         {114             cout << "x 大于1小于100.\n";115         }116         else117         {118             cout << "x大于或者等于100.\n";119         }120     }121     else122     {123         if(x < 1)124         {125             cout << "x 1小于1.\n";126         }127         else128         {129             cout << "x 1等于1.\n";130         }131     }132     cout << "--------------------------------" << "\n" ;133 }134 /* 其实所谓的 else if 语句并不是一种语法,只是一种代码写法风格.135    else if 本质其实就是 if else 里面再套if else ,然后再把代码的风格写法改变一下.136   如:137   if(a)138     {139         x = 1;140     }141     else142     {143         if(b)144         {145             x = 2;146         }147         else148         {149             if(c)150             {151                 x = 3;152             }153             else154             {155                 if(d)156                 {157                     x = 4;158                 }159                 else160                 {161                     x = 5;162                 }163             }164         }165     }166 因为 if 和 else 后面的内容不一定要有{},所以可以写成这样:167   if(a)168   x = 1;169   else if(b)170   x = 2;171   else if(c)172   x = 3;173   else if(d)174   x = 4;175   else176   x = 5;177 */178 179 void fun6()  //5.9.1 逻辑运算符以及使用 - 与(&&)  (&&1=1,1&&0=0,0&&1=0,0&&0=0)180 {            181     int x;182 183     using namespace std;184 185     cout << "请输入一个大于1且小于100的数: \n";186     cin >> x;187     if(x > 1 && x < 100)   //这里两个条件都要同时成立(x>1 = 真)且 (x<100 =真)才能执行if{ }的语句.188     {189         cout << "x大于1且小于100.\n";190     }191     else192     {193         cout << "x小于等于1或大于100.\n";194     }195     cout << "--------------------------------" << "\n" ;196 }197 198 void fun7()  //5.9.2 逻辑运算符以及使用 - 或(||) ,(1 || 1=1,1 || 0=1,0 || 1=1,0 || 0=0)199 {            200     int x;201 202     using namespace std;203 204     cout << "请输入一个大于1且小于100的数: \n";205     cin >> x;206     if(x > 1 && x < 100)   //这里只要其中1个条件成立(x>1 = 真) 或(x<100 =真)才能执行if{ }的语句.  207     {208         cout << "x大于1或小于100.\n";209     }210     else211     {212         cout << "x小于1.\n";213     }214     cout << "--------------------------------" << "\n" ;215 }216 217 void fun8()  //5.9.3 逻辑运算符以及使用 - 非(!) ,(!1=1,!0=1)218 {            219     int x;220 221     using namespace std;222 223     cout << "请输入一个大于1且小于100的数: \n";224     cin >> x;225     if(!x == 0)   //"非"其实就是取反的意思,如当x取一个不为0的数时,!x=0  226     {227         cout << "x不等于0.\n";228     }229     else230     {231         cout << "x等于0.\n";232     }233     cout << "--------------------------------" << "\n" ;234 }235 236 void fun9()  //5.10 三目运算237 {238     using namespace std;239 240     int a;241     int b;242     int z;243 244     cout << "请输入两个数\n";245     cout <<"a:";246     cin >>a;247     cout <<"b:";248     cin >>b;249     cout <<"\n";250     251     if(a > b)252     {253         z = a;254     }255     else256     {257         z = b;258     }259     cout << "z:" << z << "\n";260     z = (a > b)? a:b;    //判断(a>b)知否为真,如果真则取a,如果假,则取b.  三目运算本质就是简化的if else.261     cout << "z:" << z << "\n";262 }263 264 void fun10()  //5.10.1 三目运算的优先问题 :三目运算的方向,自右向左.  ←265 {266     using namespace std;267 268     int a;269     int b;270     int z;271 272     a = 1;273     b = 2;274 275     z = a>b?a:a>b?a:b ;  //等同于 z = a>b?a:(a>b?a:b)276     cout << "z:" << z << "\n";277 }278 279 //5.10.3 三目运算符的型别问题:280 //三目运算允许不同类型的数值进行操作,把他们转化成最高级别的类型,再进行操作281 void fun11()282 {283     using namespace std;284 285     int a;286     float b;287 288     a = 1;289     b = 2.1f;   //b是浮点型,在数字后面+f.290     cout << (a>b?a:b) <<"\n";  //把a也转化成高级的类型(float),然后再和b比较.291 } 292 //反汇编取a和b的值293 //004024B6   fild        dword ptr [ebp-4]294 //004024B9   fcomp       dword ptr [ebp-8]295 296 297  void fun12() //5.10.4 三目运算在字符型变量中的应用298  {299      using namespace std;300 301      char a;302      cin >>a;303      cout << ( a = (a >= A && a <= Z)?(a + 32):a) << "\n";304  }   //这个是一个把大小字母转化成小写字母的程序,如果输入的不是大写字母,则不转换.305  306 307 void fun13()  //5.11 复杂的嵌套if语句308 {309     using namespace std;310 311     int x;312 313     cout << "请输入一个整数! \n";314     cout << "x:" ;315     cin >> x;316 317     if(x > 1)318     {319         if(x == 1)320         {321             cout << "你输入了1.\n";322         }323         else324         {325             if(x > 100)326             {327                 cout << "你输入了大于100的数.\n";328             }329             else if(x == 100)330             {331                 cout << "你输入了100.";332             }333             else334             {335                 cout << "你输入了1个大于1,小于100的数.\n";336             }337         }338     }339     else340     {341         cout << "你输入了一个小于1的数.\n";342     }343 }344         345 346 int main(int argc, char* argv[])347 {348     //fun1();  //5.3表达式的定义349     //fun2();  //5.4运算符的定义350     //fun3();  //5.5自加与自减351     //fun4();  //5.8.1 if+else语句352     //fun5();  //5.8.2 else if语句353     //fun6();  //5.9.1 逻辑运算符以及使用 - 与354     //fun7();  //5.9.2 逻辑运算符以及使用 - 或355     //fun8();  //5.9.3 逻辑运算符以及使用 - 非356     //fun9();  //5.10.1 三目运算357     //fun10();  //5.10.2 三目运算的优先问题358     //fun11();  //5.10.3 三目运算符的型别问题359     //fun12();  //5.10.4 三目运算在字符型变量中的应用360     fun13();  //5.11 复杂的嵌套if语句361 362     return 0;363 }

 

范磊 C++ 第5章 if语句与运算符