java中的问号与冒号? : 表达式

A:布尔表达式(真/假),B:执行语句 ,C :执行语句

最直观的: A ? B :C (如果A为真执行B否则执行C)

android中的一段代码

return mData != null ? mData.size() : 0;

return 代表返回 得出结果后 依靠它将数据返回给上层方法进行计算 (如果不懂只需要知道它代表意思:返回 发送)时间久了就懂了

如果(A)mData 不等于 null(空) 条件为执行 B 获取mData的数量 mData.size

如果 (A)mData 等于 null(空) 条件为执行 C 返回 0 ;

(看完应该了解了  ? :   表达式在干什么了)

最简单的联想:
int a = 2;
2 >=0 ? 2+2 : 2-2 ; 2肯定大于0的 条件为真 执行 问号后面的语句 2+2 ;

a >=0 ? a+a : a-a ; 如果这样还不能理解那么就是基础没打好 请从头开始学习

学习编程最怕心急,害的我浪费了3月的时间。

基础 基础 基础 千万不要把它看轻了 它是这世最重的,它可以承载百层高楼......

时间: 2024-10-12 08:43:18

java中的问号与冒号? : 表达式的相关文章

Java中使用Groovy实现自定义表达式解析

Groovy作为一种JVM-Based语言,目前普及程度正在提高.本文演示一下在Java类中,通过继承GDK的groovy.lang.Script类如何支持自定义表达式解析功能. 输入: 表示一行数据的某个map结构.在实际应用中,产生这种结构的最常见场景可能是通过JDBC访问数据库.通过调用WebService服务得到的某行结果集等. 目标设定: 假设我们希望对输入数据进行某个运算.此处示例中,我们模拟oracle中最常用的nvl函数. 处理过程:  首先,通过继承groovy.lang.Sc

Java中lambda(λ)表达式的语法

举一个排序的例子,我们传入代码来检查一个字符串是否比另一个字符串短.这里要计算: first.length() - second.length() first和second是什么?他们都是字符串.Java是一个强类型语言,所以我们还要指定他们的类型: (String first, String second) -> first.length() - second.length() lambda表达式就是一个代码块,以及必须传入代码的变量规范. 你已经见过Java中的一种lambda表达式形式:参

C/C++中问号冒号表达式的陷阱

 C/C++中问号冒号表达式的陷阱 搬运自我的百度空间 在做一个工程,遇到奇怪的bug,问题类似如下 int a=1,b=2,c=3,d; d=a*b + c ? 1: 0; 问d结果是多少? 设计时,我想结果应该为3 (1*2+1) 实际d结果为1 因为问号冒号表达式的优先级比较低(三元运算符优先级小于二元运算符,比如加号+) 所以实际运行时d和以下表达式等价: d= (a*b + c) ? 1: 0; 而不是我们预想中的a*b + (c ? 1 : 0) 2014-12-11

java :: Java中的双冒号操作符

java中的双冒号操作符 定义 双冒号运算操作符是类方法的句柄,lambda表达式的一种简写,这种简写的学名叫eta-conversion或者叫η-conversion. 通常的情况下: 把 x -> System.out.println(x) 简化为 System.out::println 的过程称之为 eta-conversion 把 System.out::println 简化为 x -> System.out.println(x) 的过程称之为 eta-expansion 范式: 类名

Java中Lambda表达式的使用

简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.)Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块

Java中Lambda表达式的使用(转)

https://www.cnblogs.com/franson-2016/p/5593080.html 简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.)Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式

python中的问号表达式

我们知道C语句中存在问号表达式,例如下面: a=2>1? 10: -10; 那么,Python脚本语言中是否也存在类似的问号表达式呢?答案是肯定的.而且存在两种方式. 方式1:使用if else实现 如下例: b = 5 a = 2 if b == 4 else 1 print a 方式2:使用逻辑运算符实现 如下例: b = 5 a = b == 4 and 2 or 1 要注意:使用逻辑运算时要保证and后面的变量值不能为非,否则会出错. 提示 python中的and和or和其它语言的区别很

Java中的switch语句后面的控制表达式的数据类型

Java中的switch语句后面的控制表达式的数据类型 1.byte 2.char 3.short 4.int 5.枚举类型 6.Java 7允许java.lang.String类型

Java中的表达式运算

1.问题背景    以下代码运行的结果为:    A.a的值:8   b的值:7           B.a的值:8  b的值:8    C.a的值:9   b的值:7           D.a的值:9  b的值:8 /** * */ package com.you.model; /** * @author YouHaidong * */ public class AB { /** * @param args */ public static void main(String[] args)