Java中判断条件if的简单写法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中判断条件if的简单写法相关的知识,希望对你有一定的参考价值。
如题:
public Criterion[] handleQueryConditions(String type, String timeC, String timeE,
String deptId, String year)
Criterion[] criterions = null;
//先判断传入的参数,如果不为空则添加到Criterion[] 数组中
//我写的是笨方法,一个一个判断,领导说太罗嗦了,现在想问下大家怎么写简单些,本
//人菜鸟,谢谢大家了!
return criterions;
static void fillParam(Criterion[], String param)
if(param != null)
//添加到Criterion[] 数组中
参考技术B 本来就那么多个参数
就算抽一个方法出来 也要一个个判断
用public Criterion[] handleQueryConditions(String test。。)追问
不好意思,没太懂什么意思!
追答用可变参数
// init list
public void test(String ...strings)
for(String str : strings)
add(str);
public void add( String str)
if(str!=null)
list.add(str);
每个参数都放进去
追答那肯定要每个参数都做判断啊,只是你可以把判断方法提取出来,那么不建议你用数组来装这些元素了,毕竟不是动态增长的,定义List<String > criterions = new ArrayList<String>();
public List<String> add(List<String> criterions, String params)if(params!=null)
criterions.add(params);
return criterions;
这么一抽取之后,你在上面的方法里面就可以直接把所有的参数放进去了,然后把List转换成数组就可以达到要求了
追问这个方法是不错,但是还是不行,我给你看下我笨方法写的,你就知道我要做什么了!如果按照你这种做法,是不是最后还是要判断?
为什么需要呢?看你写这么多,无非就是计算不为空的字符串个数,然后新建这么多个长度的数组,将字符串丢进去,我的做法完全可以啊,用List来装不为空的字符串,动态增长的数组,最后转化一下就可以了
本回答被提问者采纳 参考技术D 没太明白,你传入的参数不都是字符串么?为什么要放到Criterion类型的数组里?这个类型是怎么转换的?追问可以使用我们公司平台封装的方法来转换成Criterion类型的。
criterions[0] = Comparison.ge("ngsj", maps.get("ngsjC"));
shell判断语法
shell中的逻辑判断
if判断格式
写法1:if ?条件 ; then ?语句; fi
#! /bin/bash
if [ -d /usr/local/zabbix ]
then
? echo 123
fi
写法2:if 条件; then 语句; else 语句; fi
#! /bin/bash
if [ -d /usr/local/zabbix ]
then
? echo 123
else
? mkdir /usr/local/zabbix
fi
写法3:if 条件; then 语句; elif 条件; then 语句; else 语句; fi
a=4
if [ $a -gt 3 ]
then
? echo "<4 && >1"
elif [ $a -gt 5 ]
? echo "<5 && >1"
else
?echo "null"
fi
if判断还支持多个条件并写,一次判断多个条件,如下面的格式
if [ -d /usr/local/zabbix ] && [ -f /usr/local/zabbix/1.txt ]
then
? mkdir /usr/local/zabbix/src
else
? exit
fi
if判断文件、目录属性
[ -f file ] 判断是否是普通文件,且存在
[ -d file ] 判断是否是目录,且存在
[ -e file ] 判断文件或者目录是否存在
[ -r file ] 判断文件是否可读
[ -w file ] 判断文件是否可写
[ -x file ] 判断文件是否可执行
判断一个文件是否是普通文件并且存在
#! /bin/bash
# 判断文件是否存在,若不存就创建
f="/usr/local/src/zabbix"
if [ -f $f ]
then
?echo $f is yes
else
touch $f
判断是否存在这个目录,如果不存在则创建
#! /bin/bash
d="/usr/local/src/zabbix"
if [ -d $d ]
?then
? ?echo $d
?else
mkdir $d
判断文件或目录是否存在
#! /bin/bash
# -e 不管是文件或目录,是判断是否存在
f="/usr/local/src/zabbix"
if [ -e $f ]
then
?echo $f
else
mkdir $f
fi
判断文件是否可读,目录可读则可以查看目录下文件。文件可读则可以查看内容
#! /bin/bash
f="/usr/local/src/zabbix"
if [ -r $f ]
then
echo $f
fi
if特殊用法
if [ -z "$a" ] 表示当变量a 的值为空时会怎么样
if [ -n "$a" ] 表示当变量a的值不为空
if grep -q ‘123‘ 1.txt; then 表示如果1.txt中含有‘123’的行时会怎样
if [ ! -e file ]; then ... 表示文件不存在时会怎样
if (($a<1)); then .. 等同于 if [ $a -lt 1 ]; then...
[ ] 中不能使用 <,>, ==, !=,>=,<=这样的符号
if [ -n "$a" ] ?表示当变量a的值不为空
if [ -z "$a" ] ?表示当变量a 的值为空
判断一个变量或文件不为空或存在内容
#! /bin/bash
a=4
if [ -z "$a" ]
then
echo "no null"
else
?echo "The shell a is null"
fi
判断一个变量或文件不为空
可以用于文件判断,如果变量不为空则执行或继续判断。如果文件不为空则不针对这个文件做操作或终止执行
#! /bin/bash
a=/src/1.txt
if [ -n "$a" ]
then
echo "no null"
else
?echo "touch /src/1.txt"
fi
将一条命令作为判断条件,判断/etc/passwd文件中是否存在root字段,如果有root字段则输出,没有则不输出
#! /bin/bash
if [ -n `grep -wq "root" /etc/passwd` ]
then
echo "no null"
fi
grep -q 表示过滤某个文件内容的时候,不需要把结果输出显示出来
sh -x 执行过程
[[email protected] src]# sh -x 1.sh
++ grep -wq root /etc/passwd
+ ‘[‘ -n ‘]‘
+ echo ‘no null‘
no null
?cace判断
case 逻辑判断
这个脚本的目的是让用户输入一个数字,然后用这个脚本去判断用户输入的数字的一个范围
! /bin/bash
read -p " Please input a number: "n
if [ -z "$n" ] #取变量n来判断是否为空, 为空的话,说明用户没有输入数字
then
?echo "Please input a number." #返回继续提示请输入数字内容
exit 1 #然后退出来,返回一个数值 1
fi
-------------------------------------------
n1=`echo $n |sed ‘s/[-0-9]//g‘` #判断输入的是否是纯数字,echo出来并替换操作,使用sed 把所有的数字[范围0-9所有数字]替换成空, $n1这个变量就映射为空
if [ ! -z $n1 ] ?#当变量不为空时,则提示继续输入数字。当变量为空时继续往下执行,表示变量中引用的是纯数字
then
echo "Please input a number." #继续提示输入数字
?exit 1 #继续退出来,返回一个数值 1
fi
--------------------------------------------
if [ $n -lt 60 ]
then
? tag=1
elif [ $n -ge 60 ] && [ $n -lt 80 ]
then
? tag=2
elif [ $n -ge 80 ] && [ $n -lt 90 ]
then
? tag=3
elif [ $n -ge 90 ] && [ $n -le 100 ]
then
? tag=4
else
? tag=0
fi
-----------------------------------------------------
case $tag in
? 1)
echo " 不及格"
;;
? 2)
echo "及格"
;;
? 3)
echo "良好"
;;
? 4)
echo "优秀"
;;
? *)
echo "The number range is 0-100."
;;
esac
脚本执行过程
+ read -p ‘ Please input a number: ‘ n
Please input a number: 90
+ ‘[‘ -z 90 ‘]‘ //判断 90 变量是否存在
++ sed ‘s/[-0-9]//g‘ // $n1 清空
++ echo 90
+ n1= //$n1 为空
+ ‘[‘ ‘!‘ -z ‘]‘ // 判断是否不为空,不为空说明正常,往下匹配
+ ‘[‘ 90 -lt 60 ‘]‘
+ ‘[‘ 90 -ge 60 ‘]‘
+ ‘[‘ 90 -lt 80 ‘]‘
+ ‘[‘ 90 -ge 80 ‘]‘
+ ‘[‘ 90 -lt 90 ‘]‘
+ ‘[‘ 90 -ge 90 ‘]‘
+ ‘[‘ 90 -le 100 ‘]‘
+ tag=4 //匹配到了第4个条件
+ case $tag in
+ echo $‘344274230347247200‘
优秀
# 执行,输入非数字,就会提示请输入数字
[[email protected] sbin]# sh -x case.sh
+ read -p ‘ Please input a number: ‘ n
Please input a number: linux
+ ‘[‘ -z linux ‘]‘ //判断 linux 变量是否存在
++ sed ‘s/[-0-9]//g‘ //清空$n1 所有数字
++ echo linux
+ n1=linux //$n1不为空,所以输入的不是数字有问题
+ ‘[‘ ‘!‘ -z linux ‘]‘
+ echo ‘Please input a number.‘
Please input a number. //提示请输入数字,非其他字符串
+ exit 1
以上是关于Java中判断条件if的简单写法的主要内容,如果未能解决你的问题,请参考以下文章