《c++入门经典》笔记4
第四章 使用表达式、语句和运算符
4.1语句
全部的c++都由语句组成,语句是以分号结尾的命令。语句控制程序的执行流程、评估表达式甚至能够什么也不作(空语句)。ios
空白:c++
在c++程序源代码中,空格、制表符和换行符统称为空白。空白旨在让程序员方便阅读代码,编译器一般忽略他们。程序员
正确的缩进有助于识别程序块或函数块的开始和结束位置。函数
复合语句:spa
可将多条语句编组,构成一条复合语句,这种语句以{开头,以}结束。可将复合语句放在任何可以使用单条语句的地方。code
复合语句中的每条语句都必须以分号结尾,但复合语句自己不能以分号结尾。如:ci
{
temp = a;
a = b;
b = temp;
}
这条复合语句交换a与b的值,交换时使用变量临时存储了一个变量的值。编译器
4.2表达式
表达式是语句中任何返回一个值的部分。如:数学
z = x = y + 13;
string
这条语句包含三个表达式:
-
表达式 y + 13,值被存储在变量x中;
-
表达式x = y + 13,它返回变量x的值,而该返回值被存储在变量z中;
-
表达式z = x = y + 13,它返回z的值,可是该返回值并未存储到其余变量中。
赋值运算符=致使左操做数的值变为右操做数的值
操做数是一个数学术语,指的是被运算符操做的表达式。
程序清单4.1 Expression.cpp
#include <iostream>
int main()
{
int x = 12, y = 42, z = 88;
std::cout << "Before -- x: " << x << " y: " << y;
std::cout << " z: " << z << "\n\n";
z = x = y + 13;
std::cout<<"After -- x: "<<x<<" y: "<<y;
std::cout<<" z: "<<z<<"\n";
return 0;
}
4.3运算符
运算符是致使编译器执行操做的符号。
-
赋值运算符:=(常量能够做为右值,但不能做为左值,好比95 = grade非法)
-
数学运算符:+、-、*、/、%(%为求模运算符,返回整数除法的余数)
-
组合运算符:+=、-=、*=、/=、%=(都是自赋值运算符)
-
关系运算符:==、!=、>、>=、<、<=
-
逻辑运算符:&&、||、!
-
位运算符:&、|、^、~、<<、>>
-
递增与递减运算符:++、--
-
前缀运算符与后缀运算符:递增运算符++与递减运算符--若放在变量前面,就称为前缀运算符,放在变量后面则称为后缀运算符。
如:++count;
中的++为前缀运算符,count++;
中的++为后缀运算符
区别在于进行赋值时,前缀运算符会在赋值前执行,然后缀运算符会在赋值后执行
int x = 5;
int sum = ++x;
这两条语句使得x为6;sum为6;
int x = 5;
int sum = x++;
这两条语句致使sum为5,x为6。
程序清单4.2 Years.cpp
#include <iostream>
int main()
{
int year = 2016;
std::cout<<"The year "<<++year<<" passes.\n";
std::cout<<"The year "<<++year<<" passes.\n";
std::cout<<"The year "<<++year<<" passes.\n";
std::cout<<"\nIt is now"<<year<<".";
std::cout<<" Have the Chicago Cubs won the World Series yet?\n";
std::cout<<"\nThe year "<<year++<<" passes.\n";
std::cout<<"The year "<<year++<<" passes.\n";
std::cout<<"The year "<<year++<<" passes.\n";
std::cout<<"\nSurely the Cubs have won the Series by now.\n";
return 0;
}
运算符优先级:表就不打了,本身去查,貌似版本挺多。
4.4if-else条件语句
程序清单4.3 Grader.cpp
#include <iostream>
int main()
{
int grade;
std::cout << "Enter a grade (1-100): ";
std::cin >> grade;
if (grade >= 70)
std::cout << "\nYou passed. Hooray!\n";
else
std::cout << "\nYou failed. sigh.\n";
return 0;
}
程序清单4.4 NewGrader.cpp
#include <iostream>
int main()
{
int grade;
std::cout << "Enter a grade (1-100): ";
std::cin >> grade;
if (grade >= 70)
{
if (grade >= 90)
{
std::cout << "\nYou got an A. Great job!\n";
return 0;
}
if (grade >= 80)
{
std::cout << "\nYou got a B. Good work!\n";
return 0;
}
std::cout << "\nYou got a C.\n";
}
else if (grade >= 60)
{
std::cout << "\nYou got a D.\n";
}
else
std::cout << "\nYou got an F. Congratulations!\n";
}