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 }
时间: 2024-10-14 23:43:42