《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";
}