首页 > 其他分享 >无涯教程-Dart - 运算符

无涯教程-Dart - 运算符

时间:2023-11-12 13:32:35浏览次数:34  
标签:num1 num2 res 无涯 Dart 运算符 print var

在本章中,我们将讨论Dart中可用的运算符。

  • 算术运算符
  • 关系运算符
  • 类型运算符
  • 按位运算符
  • 赋值运算符
  • 逻辑运算符

算术运算符

下表显示了Dart支持的算术运算符。

Sr.No Operators & Meaning
1 +

相加

2 -

相减

3 -expr

一元减号,也称为负数

4 *

相乘

5 /

相除

6 ~/

相除,返回整数值

7 %

获取整数除法的余数(取模)

8 ++

增量

9 --

减量

以下示例演示了如何在Dart中使用不同的运算符-

void main() { 
   var num1 = 101; 
   var num2 = 2; 
   var res = 0; 
   
   res = num1+num2; 
   print("Addition: ${res}"); 
   
   res = num1-num2;
   print("Subtraction: ${res}"); 
   
   res = num1*num2; 
   print("Multiplication: ${res}"); 
   
   res = num1/num2; 
   print("Division: ${res}"); 
   
   res = num1~/num2; 
   print("Division returning Integer: ${res}"); 
   
   res = num1%num2; 
   print("Remainder: ${res}"); 
   
   num1++; 
   print("Increment: ${num1}"); 
   
   num2--; 
   print("Decrement: ${num2}"); 
}

它将产生以下输出-

Addition:103 
Subtraction: 99                               
Multiplication: 202               
Division: 50.5
Division returning Integer: 50                  
Remainder: 1      
Increment: 102    
Decrement: 1

关系运算符

关联运算符测试或定义两个实体之间的关系类型,关系运算符返回布尔值,即true/false。

假设A=10,B=20。

Operator Remark Example
> 大于 (A > B) is False
< 小于 (A < B) is True
>= 大于或等于 (A >= B) is False
<= 小于或等于 (A <= B) is True
== 相等 (A==B) is True
!= 不相等 (A!=B) is True

以下示例显示了如何在Dart中使用相等和关系运算符-

void main() { 
   var num1 = 5; 
   var num2 = 9; 
   var res = num1>num2; 
   print('num1 greater than num2 :: ' +res.toString()); 
   
   res = num1<num2; 
   print('num1 lesser than  num2 :: ' +res.toString()); 
   
   res = num1 >= num2; 
   print('num1 greater than or equal to num2 :: ' +res.toString()); 
   
   res = num1 <= num2; 
   print('num1 lesser than or equal to num2  :: ' +res.toString()); 
   
   res = num1 != num2; 
   print('num1 not equal to num2 :: ' +res.toString()); 
   
   res = num1 == num2; 
   print('num1 equal to num2 :: ' +res.toString()); 
} 

它将产生以下输出-

num1 greater than num2 ::  false 
num1 lesser than num2 ::  true 
num1 greater than or equal to num2 ::  false 
num1 lesser than or equal to num2  ::  true 
num1 not equal to num2 ::  true 
num1 equal to num2 ::  false 

类型运算符

这些运算符非常方便在运行时检查类型。

Operator
Remark
is 确定对象是否具有指定的类型
is! 如果对象具有指定的类型,则为false

is 示例

void main() { 
   int n = 2; 
   print(n is int); 
} 

它将产生以下输出-

true 

is! 示例

void main() { 
   double  n = 2.20; 
   var num = n is! int; 
   print(num); 
} 

它将产生以下输出-

true 

按位运算符

下表列出了Dart中可用的按位运算符及其作用-

Operator Remark Example
Bitwise AND a & b 在每个操作数的对应位为1的每个位位置返回1。
Bitwise OR a | b 在每个操作数或两个操作数的对应位为1的每个位位置返回1。
Bitwise XOR a ^ b 在每个操作数(但不是两个操作数)的对应位均为1的每个位位置返回1。
Bitwise NOT ~ a 反转其操作数的位。
Left shift a <<b 将二进制表示形式的a向左移动b位,从右侧向右移动零。
Signpropagating right shift a >> b 将二进制表示形式的a向右移b位,丢弃移开的位。

以下示例显示了如何在Dart中使用按位运算符-

void main() { 
   var a = 2;  
   var b = 3;  
   
   var result = (a & b); 
   print("(a & b) => ${result}");    
   result = (a | b); 
   print("(a | b) => ${result}");
   result = (a ^ b); 
   print("(a ^ b) => ${result}"); 
   
   result = (~b); 
   print("(~b) => ${result}");  
   
   result = (a < b); 
   print("(a < b) => ${result}"); 
   
   result = (a > b); 
   print("(a > b) => ${result}"); 
}  

它将产生以下输出-

(a & b) => 2
(a | b) => 3 
(a ^ b) => 1           
(~b) => -4             
(a < b) => true                             
(a > b) => false

赋值运算符

下表列出了Dart中可用的赋值运算符。

Sr.No Operator & Remark
1 =(Simple Assignment )

将值从右侧操作数分配到左侧操作数

Ex :C=A + B会将A + B的值赋给C

2 ??=

仅在变量为null时分配值

3 +=(Add and Assignment)

它将右操作数添加到左操作数,并将输出分配给左操作数。

Ex :C +=A等于C=C + A

4 -=(Subtract and Assignment)

它从左侧操作数中减去右侧操作数,并将输出分配给左侧操作数。

Ex :C-= A等于C=C – A

5 *=(Multiply and Assignment)

它将右操作数与左操作数相乘,并将输出分配给左操作数。

Ex :C *=A等于C=C * A

6 /=(Deivide and Assignment)

它将左操作数除以右操作数,并将输出分配给左操作数。

以下示例显示了如何在Dart中使用赋值运算符-

void main() { 
   var a = 12; 
   var b = 3; 
     
   a+=b; 
   print("a+=b : ${a}"); 
     
   a = 12; b = 13; 
   a-=b; 
   print("a-=b : ${a}"); 
     
   a = 12; b = 13; 
   a*=b; 
   print("a*=b' : ${a}"); 
     
   a = 12; b = 13; 
   a/=b;
   print("a/=b : ${a}"); 
     
   a = 12; b = 13; 
   a%=b; 
   print("a%=b : ${a}"); 
}    

它将产生以下输出-

a+=b : 15                         
a-=b : -1                             
a*=b' : 156                                    
a/=b :0.9230769230769231                       
a%=b : 12

逻辑运算符

逻辑运算符用于组合两个或多个条件。逻辑运算符返回布尔值。假设变量A=10,而B=20。

Operator Remark Example
&&

And -仅当所有指定的表达式均返回true时,运算符才返回true

(A > 10 && B > 10) is False.
||

OR -如果指定的至少一个表达式返回true,则运算符返回true

(A > 10 || B > 10) is True.
!

NOT - 运算符返回表达式结果的倒数。 例如:!(7>5)返回false

!(A > 10) is True.

以下示例显示了如何在Dart中使用逻辑运算符-

void main() {  
   var a = 10; 
   var b = 12; 
   var res = (a<b)&&(b>10); 
   print(res);  
}    

它将产生以下输出-

true 

让我们再举一个例子-

void main() { 
   var a = 10; 
   var b = 12; 
   var res = (a>b)||(b<10); 
   
   print(res);  
   var res1 =!(a==b); 
   print(res1); 
}    

它将产生以下输出-

false 
true 

短路运算符

&&和||运算符用于组合表达式。仅当两个条件都返回true时,&&运算符才返回true。

让我们考虑以下表达式-

var a = 10 
var result = (a<10 && a>5)

在上面的示例中,a <10和a> 5是由&&运算符组合的两个表达式。在这里,第一个表达式返回false。但是,运算符要求两个表达式都返回true。因此,运算符将跳过第二个表达式。

||如果表达式之一返回true,则运算符返回true。例如-

var a = 10 
var result = ( a>5 || a<10)

在上面的代码段中,两个表达式a> 5和a <10被a ||组合操作员。在这里,第一个表达式返回true。由于第一个表达式返回true,因此|||运算符跳过后面的表达式并返回true。

由于&&和||的这种行为运算符,它们称为短路运算符。

三元运算符

如果 expr1 不为null,则返回其值;否则返回expr2 

以下示例显示了如何在Dart中使用条件表达式-

void main() { 
   var a=10; 
   var res=a > 12 ? "value greater than 10":"value lesser than or equal to 10"; 
   print(res); 
} 

它将产生以下输出-

value lesser than or equal to 10

让我们再举一个示例-

void main() { 
   var a=null; 
   var b=12; 
   var res=a ?? b; 
   print(res); 
}

它将产生以下输出-

12

参考链接

https://www.learnfk.com/dart-programming/dart-programming-operators.html

标签:num1,num2,res,无涯,Dart,运算符,print,var
From: https://blog.51cto.com/u_14033984/8329015

相关文章

  • 无涯教程-Dart - 变量声明
    变量是内存中的命名空间用于存储值。必须先声明变量,然后才能使用它,Dart使用var关键字实现相同的目的。声明变量的语法如下:varname='Smith';dart中的所有变量都存储对值的引用,而不是包含值,名为name的变量包含对值为"Smith"的String对象的引用。Dart通过在变量名称前添加数......
  • 无涯教程-Dart - 数据类型
    编程语言的最基本特征之一是它支持的数据类型集。Dart语言支持以下类型-number  数字类型Strings   字符串类型Booleans布尔类型Lists     列表类型Maps    映射类型number数字类型Dart中的数字用于表示数字。Integer   - 整数值表......
  • 无涯教程-Dart - 基本语法
    语法定义了一组编写程序的规则。让我们从传统的"HelloLearnfk"示例开始-main(){print("HelloLearnfk!");}main()  - 函数是Dart中的预定义方法,此方法充当应用程序的入口点,Dart脚本需要main()方法才能执行。 print()  - 是预定义的函数,可将指定的......
  • 无涯教程-批处理 - NET STATISTICS函数
    显示工作站或服务器的网络统计信息。Netstatistics[SERVER/WORKSTATION]NETSTATISTICS-示例NetstatisticsServerServerStatisticsfor\\WIN-50GP30FGO75Statisticssince1/3/20169:16:28PMSessionsaccepted0Sessionstimed-out......
  • 无涯教程-批处理 - NET USE函数
    连接或断开计算机与共享资源的连接,或显示有关连接的信息。NETUSE[devicename|*][\\computername\sharename[\volume][password|*]][/USER:[domainname\]username][/USER:[dotteddomainname\]username][/USER:[username@dotteddomainname][/SMARTCARD][/SAV......
  • PHP 中的相等性比较运算符(== 双等号)和恒等性比较运算符(=== 三等号)有什么区别?
    内容来自DOC[https://q.houxu6.top/?s=PHP中的相等性比较运算符(==双等号)和恒等性比较运算符(===三等号)有什么区别?](https://q.houxu6.top/?s=PHP中的相等性比较运算符(%3D%3D双等号)和恒等性比较运算符(%3D%3D%3D三等号)有什么区别?)==和===之间有什么区别?宽松的==......
  • 无涯教程-批处理 - NET STOP/START函数
    此命令用于停止和启动特定服务。NETSTOP/START-语法Netstop/start[servicename]NETSTOP/START-示例NETSTOPSpooler上面的命令用于停止打印机后台处理程序服务。以下是上述命令的输出。ThePrintSpoolerserviceisstopping.ThePrintSpoolerservicewassto......
  • 无涯教程-批处理 - NET COMPUTER函数
    添加或删除连接到Windows域控制器的计算机。NETCOMPUTER-语法NETCOMPUTER\\computername{/ADD|/DEL}NETCOMPUTER-示例NETCOMPUTER\\dxbtest/ADD上面的命令会将名称为dxbtest的计算机添加到Windows域控制器所在的域中。参考链接https://www.learnfk.com/batch-......
  • 无涯教程-批处理 - NET CONFIG函数
    显示您当前的服务器或工作组设置。NETCONFIG-语法NETCONFIGNETCONFIG-示例NETCONFIG运行上面代码输出Thefollowingrunningservicescanbecontrolled:ServerWorkstationThecommandcompletedsuccessfully.参考链接https://www.learnfk.com/batch-......
  • 无涯教程-批处理 - Copying Registry Keys函数
    通过REGCOPY命令从注册表中复制,请注意,为了从注册表复制值,您需要在系统上具有足够的特权才能在源位置和目标位置上都执行此操作。REGCOPY[\\SourceMachine\][ROOT\]RegKey[\\DestMachine\][ROOT\]RegKey@echooffREGCOPYHKEY_CURRENT_USER\ConsoleHKEY_CURRENT_USER\Co......