第4章 将语句编织成程序
4.1 用运算符对数据进行运算
4.1.1 用表达式表达设计意图
4.1.2 算术运算符
//p83 #include <iostream> using namespace std; int main() { int i=1; cout<<++i<<endl; //加了之后再用 int j=1; cout<<j++<<endl; //用了之后再加 return 0; }
4.1.3 赋值操作符
//p84 #include <iostream> using namespace std; int main() { int i,j,k; i=j=k=1; //可以连着赋值。因为每个表达式有返回值 i += 2; j -= 2; k *= 4; cout<<i<<" "<<j<<" "<<k<<endl; cout<<k/3<<endl; //如果分子分母都是整数,会自动取整 cout<<(k+0.0)/3<<endl; //分子分母其中之一为实数,就返回实数 return 0; }
4.1.4 关系运算符
//p85 #include <iostream> #include <math.h> //为了fabs using namespace std; int main() { double a,b; bool t; a=1.0; b=1.0; t=(a==b)?1:0; //这样不可靠 if(t) cout << "a=b" << endl; //这样比较可靠。fbs的参数是实数,abs的参数是整数 if(fabs(a-b)<0.000000001) cout<<"a=b"<<endl; return 0; }
4.1.5 逻辑运算符
4.1.6 运算符之间的优先顺序
//p88 这张优先级表看熟,可以少很多括号 #include <iostream> using namespace std; bool isleapyear(int n) { return( 0==n%400 || 0==n%4 && 0!=n%100 ); } //把0写前面,==不容易写成=(初学者常见错误 int main() { int i; cin>>i; if(isleapyear(i)) cout<<"it\'s leap year"<<endl; else cout<<"it\'s not leap year"<<endl; return 0; }
4.1.7 将表达式组织成语句
4.2 条件选择语句
4.2.1 if语句
//p92 #include <iostream> using namespace std; int main() { //输入三个字符,按从小到大输出。 char a,b,c,d,max,min; cin>>a>>b>>c; max=a>b?a:b; max=c>max?c:max; min=a<b?a:b; min=c<min?c:min; d=a+b+c-max-min; cout<<min<<d<<max<<endl; return 0; }
4.2.2 并列选择的switch语句
//p94 #include <iostream> using namespace std; int main() { int i,j; cin>>i; switch(i) { case 0:j=0; break; //break不要忘记 case 1:j=1; break; case 2:j=2; break; default:j=3; } if(3==j) cout<<"input is >=3"<<endl; else cout<<"input is "<<j<<endl; return 0; }
4.3 循环控制语句
4.3.1 while循环
//p94 #include <iostream> using namespace std; int main() { int n; //cin>>n; n=3; //经常用于读入几个数据 while(n--) { cout<<n<<endl; } return 0; }
4.3.2 do…while循环
//p99 #include <iostream> using namespace std; int main() { int n; //cin>>n; n=3; //经常用于读入几个数据 do { cout<<n<<endl; } while(--n); //因为先减,再用,所以也是三次 return 0; }
4.3.3 for循环
//p102 for 循环的应用非常多 #include <iostream> using namespace std; int main() { int i; for(i=1;i<=10;++i) { cout<<i<<" "; } for(i=1; ;++i) if(i>99) break; //否则是死循环 for(int k=0; k<=30; k+=2) { if(k<20) continue; cout<<k<<endl; } return 0; }
4.3.4 循环控制:break和continue
4.4 从语句到程序
这节不用细看。
4.4.1 程序是控制语句串联起来的语句
4.4.2 豪华工资统计程序