Computer Programming 简明教程

Computer Programming - Operators

编程语言中的运算符是告诉编译器或解释器执行特定的数学、关系或逻辑运算并生成最终结果的符号。本章将解释 operators 的概念,并将带您了解 C、Java 和 Python 中可用的重要算术和关系运算符。

Arithmetic Operators

计算机程序被广泛用于数学计算。我们可以编写一个计算机程序,它可以进行简单的计算,例如对两个数字求和 (2 + 3),我们还可以编写一个程序,它可以解复杂的方程,如 P(x) = x^4 + 7x^3 - 5x + 9。如果您曾经是一个成绩差的学生,那么您一定知道在第一个表达式中 2 和 3 是操作数,而 + 是操作符。类似的概念存在于计算机编程中。

观察以下两个示例 −

2 + 3

P(x) = x4 + 7x3 - 5x + 9.

这两个语句在编程语言中称为算术表达式,并且在这些表达式中使用的 plusminus 称为算术运算符,而这些表达式中使用的值(如 2、3 和 x 等)称为操作数。在其最简单的形式中,此类表达式会产生数值结果。

类似地,编程语言提供了各种算术运算符。下表列出了 C 编程语言中可用的一些重要算术运算符。假设变量 A 持有 10,变量 B 持有 20,那么 −

Operator

Description

Example

+

Adds two operands

A + B 会给出 30

-

从第一个操作数中减去第二个操作数

A - B 会给出 -10

*

Multiplies both operands

A * B 会给出 200

/

Divides numerator by de-numerator

B / A 会给出 2

%

这会给出整数除法的余数

B % A 会给出 0

下面是一个简单的 C 编程示例,用于了解上述数学运算符 −

#include <stdio.h>

int main() {
   int a, b, c;

   a = 10;
   b = 20;

   c = a + b;
   printf( "Value of c = %d\n", c);

   c = a - b;
   printf( "Value of c = %d\n", c);

   c = a * b;
   printf( "Value of c = %d\n", c);

   c = b / a;
   printf( "Value of c = %d\n", c);

   c = b % a;
   printf( "Value of c = %d\n", c);
}

当执行上述程序时,它将生成以下结果 −

Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0

Relational Operators

考虑一种情况,我们在其中创建两个变量并将一些值分配给它们,如下所示 −

A = 20
B = 10

在此,很明显,变量 A 的值大于 B。因此,我们需要一些符号来编写此类表达式,这些符号称为关系表达式。如果我们使用 C 编程语言,那么将按如下方式编写 −

(A > B)

在此,我们使用了符号 >,它称为关系运算符,并且在其最简单的形式中,它们产生布尔结果,这意味着结果将是 true 或 false。类似地,编程语言提供了各种关系运算符。下表列出了 C 编程语言中可用的一些重要关系运算符。假设变量 A 持有 10,变量 B 持有 20,那么 −

Operator

Description

Example

==

检查两个操作数的值是否相等,如果相等,则条件变为真。

(A == B) 不为真。

!=

检查两个操作数的值是否相等,如果值不相等,则条件变为真。

(A != B) 为真。

>

检查左操作数的值是否大于右操作数的值,如果大于,则条件变为真。

(A > B) 不为真。

<

检查左操作数的值是否小于右操作数的值,如果小于,则条件变为真。

(A < B) 为真。

>=

检查左操作数的值是否大于或等于右操作数的值,如果大于或等于,则条件变为真。

(A >= B) 不为真。

检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,则条件变为真。

(A ⇐ B) 为真。

在这里,我们将向您展示一个使用 if conditional statement 的 C 编程示例。尽管将在单独的章节中讨论此语句,但简而言之,我们使用 if statement 来检查条件,如果条件为 true,那么将执行 if statement 的主体,否则将跳过 if statement 的主体。

#include <stdio.h>

int main() {
   int a, b;

   a = 10;
   b = 20;

   /* Here we check whether a is equal to 10 or not */
   if( a == 10 ) {

      /* if a is equal to 10 then this body will be executed */
      printf( "a is equal to 10\n");
   }

   /* Here we check whether b is equal to 10 or not */
   if( b == 10 ) {

      /* if b is equal to 10 then this body will be executed */
      printf( "b is equal to 10\n");
   }

   /* Here we check if a is less b than or not */
   if( a < b ) {

      /* if a is less than b then this body will be executed */
      printf( "a is less than b\n");
   }

   /* Here we check whether a and b are not equal */
   if( a != b ) {

      /* if a is not equal to b then this body will be executed */
      printf( "a is not equal to b\n");
   }
}

当执行上述程序时,它将生成以下结果 −

a is equal to 10
a is less than b
a is not equal to b

Logical Operators

逻辑运算符在任何编程语言中都非常重要,它们帮助我们根据某些条件做出决策。假设我们要合并两个条件的结果,那么逻辑 AND 和 OR 逻辑运算符有助于我们产生最终结果。

下表显示了 C 语言支持的所有逻辑运算符。假设变量 A 持有 1,变量 B 持有 0,那么 −

Operator

Description

Example

&&

称为逻辑 AND 运算符。如果两个运算数都非零,条件变为真。

(A && B) 为假。

称为逻辑 OR 运算符。如果任何一个运算数非零,条件变为真。

(A

B) is true.

!

称为逻辑 NOT 运算符。用于反转操作数的逻辑状态。如果条件为 true,则逻辑 NOT 运算符会将其变为 false。

尝试以下示例以了解 C 编程语言中可用的所有逻辑运算符 −

#include <stdio.h>

int main() {
   int a = 1;
   int b = 0;

   if ( a && b ) {

      printf("This will never print because condition is false\n" );
   }
   if ( a || b ) {

      printf("This will be printed print because condition is true\n" );
   }
   if ( !(a && b) ) {

      printf("This will be printed print because condition is true\n" );
   }
}

当您编译和执行上述程序时,它将生成以下结果 −

This will be printed print because condition is true
This will be printed print because condition is true

Operators in Java

以下是用 Java 编写的等效程序。C 编程和 Java 提供了几乎相同的运算符和条件语句组。此程序将创建两个变量 ab ,非常类似于 C 编程,然后我们在这些变量中分配 10 和 20,最后,我们将使用不同的算术和关系运算符 −

您可以尝试执行以下程序以查看输出,其必须与上述示例生成的结果相同。

public class DemoJava {
   public static void main(String []args) {
      int a, b, c;

      a = 10;
      b = 20;

      c = a + b;
      System.out.println("Value of c = " + c );

      c = a - b;
      System.out.println("Value of c = " + c );

      c = a * b;
      System.out.println("Value of c = " + c );

      c = b / a;
      System.out.println("Value of c = " + c );

      c = b % a;
      System.out.println("Value of c = " + c );

      if( a == 10 ) {

         System.out.println("a is equal to 10" );
      }
   }
}

当执行上述程序时,它将生成以下结果 −

Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0
a is equal to 10

Operators in Python

以下是用 Python 编写的等效程序。此程序将创建两个变量 ab ,同时在这些变量中分配 10 和 20。幸运的是,C 编程和 Python 编程语言提供了几乎相同的运算符组。此程序将创建两个变量 ab ,非常类似于 C 编程,然后我们在这些变量中分配 10 和 20,最后,我们将使用不同的算术和关系运算符。

您可以尝试执行以下程序以查看输出,其必须与上述示例生成的结果相同。

a = 10
b = 20

c = a + b
print "Value of c = ", c

c = a - b
print "Value of c = ", c

c = a * b
print "Value of c = ", c

c = a / b
print "Value of c = ", c

c = a % b
print "Value of c = ", c

if( a == 10 ):
   print "a is equal to 10"

当执行上述程序时,它将生成以下结果 −

Value of c =  30
Value of c =  -10
Value of c =  200
Value of c =  0
Value of c =  10
a is equal to 10