壹影博客.
我在下午4点钟开始想你
各代码三元运算符表达式实用技巧分享
  • 2023-3-6日
  • 1评论
  • 13360围观

什么是三元运算符?

三元运算符又称为“三目运算符”和“条件运算符”,在java、C、C++、python、JavaScript、PHP等编程语言中都有三元运算符。三元运算符的作用就是判断,可以理解为if条件判断的简化版。

大多数编程三目运算符使用语法

Java/Js  条件表达式?返回值1:返回值2;
Lua第一种 条件表达式 and 返回值1 or 返回值2  
Lua第二种  
(条件表达式 and {返回值1} or {返回值2})[1])

 

Java实例-三目运算符

//Java-基本用法 
public class test{
 public static void main(String[] args){
   int a=1;
   int b=2;

   //当a为1时c为10否则c为0
   int c=a==1?10:0; 

   //控制台打印c
   System.out.println(c);
 }
}
//Java 实战--获取一年中大月/小月所有的天数

//大月31天,小月30天
//大月:一月、三月、五月、七月、八月、十月、十二月
//小月:二月、四月、六月、九月、十一月

//自增运算 countM+=10 等同于 countM=countM+10
public class test{
 public static void main(String[] args){
   int countM=0;//记录所有大月天数
   int countN=0;//记录所有小月天数

   for(int i=1;i<=12;i++){

    //大月天数
    countM+=i==1||i==3||i==5||i==7||i==8||i==10||i==12?31:0;

    //小月天数
    countN+=i==2||i==4||i==6||i==9||i==11?30:0;
   }
   
   //控制台打印countM大月天数
   System.out.println(countM);
 }
}

Js实例-三目运算符

//Js--基础用法
var a=1;
var b=2;

//当a为1时c为10否则c为0
var c=a==1?10:0;

alert(c);//弹出c
//Js 实战--获取一年中大月/小月所有的天数

//大月31天,小月30天
//大月:一月、三月、五月、七月、八月、十月、十二月
//小月:二月、四月、六月、九月、十一月

//自增运算 countM+=10 等同于 countM=countM+10

var countM=0;//记录所有大月天数
var countN=0;//记录所有小月天数

for(var i=1;i<=12;i++){

 //大月天数
 countM+=i==1||i==3||i==5||i==7||i==8||i==10||i==12?31:0;

 //小月天数
 countN+=i==2||i==4||i==6||i==9||i==11?30:0;
}

//弹出countM大月天数
alert("大月天数:"+countM);

Lua实例-三目运算符

Lua语言中需要运用第二种三目运算语法 有两种方式
第一种:条件表达式 and 返回值1 or 返回值2 来实现
第二种:(条件表达式 and {返回值1} or {返回值2})[1])

--Lua 第一种
a=1
b=2

--当a为1时c为10否则c为0
c=a==1 and a<=5 and 10 or 0 

--打印c  ->10
print(c)


--Lua 第二种
a=1
b=2

--当a为1时c为10否则c为0
c=(a==1 and a<=5 and {10} or {0})[1] 

--打印c  ->10
print(c)




--分析:第一种三目运算符使用时条件必须为ture才会返回想要的结果
--第二种三目运算为第一种的升级版解决了第一种运算表达式只能是true的情况,但是在写法上相较麻烦,根据情况可以自行调整
--Lua 实战
--获取一年中大月/小月所有的天数

-- 大月31天,小月30天
-- 大月:一月、三月、五月、七月、八月、十月、十二月
-- 小月:二月、四月、六月、九月、十一月

-- 自增运算 countM+=10 等同于 countM=countM+10

countM=0;--记录所有大月天数
countN=0;--记录所有小月天数

for i=1,12 do 
 --大月天数
 countM=countM+((i==1 or i==3 or i==5 or i==7 or i==8 or i==10 or i==12) and {31} or {0})[1]
 
 --小月天数
 --countM=countM+(i==2 or i==4 or i==6 or i==9 or i==11 and 30 or 0 and {30} or {0})[1]
end

--弹出countM大月天数
print("大月天数:"..countM)

 

发表评论

JosephKix

Lv.1 @回复 沙发

牛哇~还能这么玩

渝ICP备19011465号 | 渝ICP备19011465号-1