范磊 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         else
117         {
118             cout << "x大于或者等于100.\n";
119         }
120     }
121     else
122     {
123         if(x < 1)
124         {
125             cout << "x 1小于1.\n";
126         }
127         else
128         {
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     else
142     {
143         if(b)
144         {
145             x = 2;
146         }
147         else
148         {
149             if(c)
150             {
151                 x = 3;
152             }
153             else
154             {
155                 if(d)
156                 {
157                     x = 4;
158                 }
159                 else
160                 {
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   else
176   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     else
192     {
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     else
211     {
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     else
230     {
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     else
256     {
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         else
324         {
325             if(x > 100)
326             {
327                 cout << "你输入了大于100的数.\n";
328             }
329             else if(x == 100)
330             {
331                 cout << "你输入了100.";
332             }
333             else
334             {
335                 cout << "你输入了1个大于1,小于100的数.\n";
336             }
337         }
338     }
339     else
340     {
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 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。