《c++入门经典》笔记4

《c++入门经典》笔记4

第四章 使用表达式、语句和运算符

4.1语句

所有的c++都由语句组成,语句是以分号结尾的命令。语句控制程序的执行流程、评估表达式甚至可以什么也不做(空语句)。

空白:

在c++程序源代码中,空格、制表符和换行符统称为空白。空白旨在让程序员方便阅读代码,编译器通常忽略他们。

正确的缩进有助于识别程序块或函数块的开始和结束位置。

复合语句:

可将多条语句编组,构成一条复合语句,这种语句以{开头,以}结束。可将复合语句放在任何可使用单条语句的地方。

复合语句中的每条语句都必须以分号结尾,但复合语句本身不能以分号结尾。如:

{
temp = a;
a = b;
b = temp;
}

这条复合语句交换a与b的值,交换时使用变量临时存储了一个变量的值。

 

4.2表达式

表达式是语句中任何返回一个值的部分。如:

z = x = y + 13;

这条语句包含三个表达式:

  • 表达式 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";
}
posted @ 2020-07-13 15:50  小立哥  阅读(109)  评论(0编辑  收藏  举报