if语句:
第一种格式
if(条件表达式)
{
执行语句;
}
如果条件表达式结果为true,则运行执行语句,如果为false,则不运行。
例如:
*/
int a=4;
if (a>3)//条件表达式的结果为true,所以会运行执行语句。
{
System.out.println("好久不见!");//这句是会被打印出来的。
//执行语句的大括号可以不写,即便不写,它也会默认执行离它最近的执行语句,剩下的不再执行。
}
/* 第二种格式
if (条件表达式)
{
执行语句;
}
else else中文意为否则。
{
执行语句;
}
如果条件表达式为true,则运行第一条执行语句,如果结果为false,则运行else下面那条执行语句。
*/
int b=4;
if (b<4)//表达式结果为false,故第一条执行语句不再执行。
{
System.out.println("hello world");
}
else
//执行这一句。
{
System.out.println("hello JAVA");
}
int c=5,d;
if (c>5)
{
d=900;
}
else
{
d=800;
}
System.out.println("d="+d);
//以上这种格式也是可以的,尽管d没有初始化值,但是if语句必须执行一条,即d的值是可以赋予的。
//同时也可运用三元运算符写出以上的这种语句。
d=c>5?900:800;//其实这个表达式也可看作上个表达式的简写。但是简写有局限性。
//只有在if else语句有具体的结果时才能简化写成三元运算符,否则不能简写。
System.out.println("d="+d);
/*
if语句的第三种格式
if (条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
.......
else
{
执行语句;
}
如果第一个条件表达式结果为true,则直接运行第一条执行语句,哪怕else if语句也满足条件也不会执行。
因为第一条满足时代表整个if语句就已经运行结束了。
*/
int e=8;
if (e<2)//如果这里结果为true的话,则执行下面第一句执行语句,整个if语句结束。
//但是这里为false,则忽略这句,继续向下运行。
{
System.out.println("你好。");
}
else if (e>9)//这里还是为false,继续忽略,向下运行。
{
System.out.println("你好吗?");
}
else if (e>10)//还是为false,忽略,继续向下。
{
System.out.println("你好,世界。");
}
else//上面全部为false,就只运行这句。
{
System.out.println("你好,空间。");
}
//一个特别的举例,搞懂if语句。
int f=8;
if (f<9)
{
System.out.println("hello");
}//这里其实是单独的一条if语句,条件表达式结果为true,所以会被执行。
if (f>3)
{
System.out.println("hello。");
}//这是第二句,结果为true,同样会被执行。
if (f>10)
{
System.out.println("hello,JAVA");
}
else
{
System.out.println("hello,成都");
}//这里是第三句,结果为false,执行第二句。
/*
问题:上面总共是几条if语句?哪些语句会被执行?
上面其实是三条语句,独立来看的话,就很容易明白哪些会被执行。
注意:if语句是可以嵌套的。例如:
*/
int g=3,h=5;
if (g==2)//这里判断g是否等于2,结果是false,所以这里不执行。
{
if (h==2)//这里就是if语句的嵌套,但是上面的结果为false,故这里不执行。
{
System.out.println("hello world!");
}
else
{
System.out.println("hello yestoday!");
}
}
else//执行这里的语句。
{
if (h==2)//进入嵌套的if语句,进行判断。结果为false,还是不执行。
{
System.out.println("hello powerPC");
}
else //执行这里,所以最后只执行这里的语句。
{
System.out.println("hello Editplus");
}
}
/*有一点要记住,三种if语句格式 if else等关键词后面是没有分号;的。
一对大括号里的代码叫做局部代码块,它可以定义变量的生命周期。后期不用的变量我们应尽早
释放,以节约内存空间,起到优化的作用。
if语句练习:
根据用户给出的数据,判断对应的星期。
判断题会用到判断结构,所以这题我们用if语句来运行。
写if语句的第一个格式虽然也能完成,但是这样的话每段代码都会执行,浪费内存消耗。
同时他是个多判断结构,那么用第三种语句格式是最合理的。*/
int i=8;//定义i这个变量,这个数值是使用者输入的,所以具体的值不确定。
if (i==1)
{
System.out.println("你输入的日期是星期一。");
}
else if (i==2)
{
System.out.println("你输入的日期是星期二。");
}
else if (i==3)
{
System.out.println("你输入的日期是星期三。");
}
else if (i==4)
{
System.out.println("你输入的日期是星期四。");
}
else if (i==5)
{
System.out.println("你输入的日期是星期五。");
}
else if (i==6)
{
System.out.println("你输入的日期是星期六。");
}
else if (i==7)//在星期以内的数字我们都一一对应,一旦结果为true,就结束语句,不会消耗内存。
{
System.out.println("你输入的日期是星期天。");
}
else //如果使用者错误输入其他数据,我们没有对应,结果自然会为false,就只能执行这一句。
{
System.out.println("对不起,输入错误。");
}
/*if语句练习二
季节练习,我们知道一年12个月,有4个季节。根据实际生活我们设定:
春季:3月,4月,5月。
夏季:6月,7月,8月。
秋季:9月,10月,11月。
冬季:12月,1月,2月。
使用者输入相应的月份,我们输出对应的季节。
首先,我们还是定义变量,假设为使用者输入的不确定的数值。*/
int j=8;
if (j>=3&j<=5)
{
System.out.println(j+"月是春季。");
}
else if (j>=6&j<=8)
{
System.out.println(j+"月是夏季。");
}
else if (j>=9&j<=11)
{
System.out.println(j+"月是秋季。");
}
else if (j<=12&j>=2)
{
System.out.println(j+"月是冬季。");
}
else
{
System.out.println("对不起,没有这个月份。");
}
/*以上这种用大小于等于限定范围,&与符号连接的方式是可行的,但是要注意
java里默认是从上到下的执行顺序,如果我们把执行冬季的那条语句提到上面的话。
运行就会错乱。
于是我们改良成另外一种方法*/
int j=8;
if (j<1||j>12)//这里必须用或符号连接,因为我们要排除1到12以外的数,没有哪个数能满足既小于1又大于12的。
{
System.out.println("对不起,没有这个月份。");
}//这里我们先排除以外的数,再在里面做甄选。
else if (j>=6&j<=8)
{
System.out.println(j+"月是夏季。");
}//这里排除的是6到8.
else if (j>=9&j<=11)
{
System.out.println(j+"月是秋季。");
}//这里排除的是9到11.
else if (j>=3&j<=5)
{
System.out.println(j+"月是春季。");
}//这里排除的是3到5.
else
{
System.out.println(j+"月是冬季。");
}//剩下的自然就是12和1和2了。
//还有一种方法
int k=1;
if (k==3||k==4||k==5)
{
System.out.println(k+"月是春季。");
}
else if (k==6||k==7||k==8)
{
System.out.println(k+"月是夏季。");
}
else if (k==9||k==10||k==11)
{
System.out.println(k+"月是秋季。");
}
else if (k==12||k==1||k==2)
{
System.out.println(k+"月是冬季。");
}
else
{
System.out.println("对不起,没有这个月份。");
}
//这种用双或的方式也是可行的,而且双或还有个好处就是前面结果为true时,后面直接短路。节省内存空间。
java 指定某个字段不返回 java不执行下面if
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java stream 某个字段去重排序
java stream 某个字段去重排序
java List 字段 -
java类某个字段不返回注解 java 返回不同类型
首先,让我们通常理解一下子类型规则是什么。协变vs逆变vs双变vs不变编程语言可能有支持以下子类型规则的特性: 协变 允许用超类型替换子类型。 逆变 允许用子类
java类某个字段不返回注解 java 开发语言 List 子类 -
springboot返回忽略某个字段 springboot不返回为空字段
看一下前面的代码,这一段: @RestControllerpublic class ArticleApi { @PostMapping("/api/savearticle") public ResponseEntity<?> saveArticle(HttpServletRequest request) { String title = null,
springboot返回忽略某个字段 springboot 不响应字段为空 spring java 数据