iNumber2 = !!iNumber1;
时间: 2024-06-02 15:09:14 浏览: 32
这行代码的作用是将变量 iNumber1 转换为布尔值,并将其取反两次,最后将结果赋值给变量 iNumber2。这样做的效果是将 iNumber1 的值转换为布尔值后取反,得到一个布尔类型的值作为 iNumber2 的值。如果 iNumber1 的值为 0,则 iNumber2 的值为 false;如果 iNumber1 的值为非 0,则 iNumber2 的值为 true。
相关问题
c语言中i=!number和i=number区别
在C语言中,`i=!number`和`i=number`是有很大区别的。
`i=!number`表示将`number`的值进行逻辑非运算,即如果`number`为0,则`!number`为1,否则为0。然后将结果赋值给`i`。因此,如果`number`为0,`i`的值将为1;如果`number`非0,`i`的值将为0。
而`i=number`则表示将`number`的值直接赋值给`i`。因此,`i`的值将与`number`的值相同。
需要注意的是,赋值运算符`=`是一个单等号,而逻辑非运算符`!`是一个感叹号。要区分它们,可以注意它们在代码中的位置和上下文语境。
orcale 计算S=1!+2!+…+10!
以下是两种Oracle计算S=1!+2!+…+10!的例子:
1. 使用while循环计算S=1!+2!+…+10!
```sql
declare
i number:=1;
s number:=0;
fact number:=1;
begin
while i<=10 loop
fact:=1;
for j in 1..i loop
fact:=fact*j;
end loop;
s:=s+fact;
i:=i+1;
end loop;
dbms_output.put_line(s);
end;
/
set serveroutput on
```
2. 使用for循环计算S=1!+2!+…+10!
```sql
declare
i number:=1;
s number:=0;
fact number:=1;
begin
for i in 1..10 loop
fact:=1; for j in 1..i loop
fact:=fact*j;
end loop;
s:=s+fact;
end loop;
dbms_output.put_line(s);
end;
/
set serveroutput on
```