JAVA基础之程序流程控制:判断结构
2016-05-22 13:11
501 查看
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时,后面直接短路。节省内存空间。
第一种格式
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基础之运算符
- eclipse编辑器常用快捷键
- MyEclipse无法启动(闪退)的一种解决
- JAVA基础之常量、进制、变量
- mysql java.sql.SQLException: Unknown system variable 'language
- 重温Java基础之第一天
- JAVA学习笔记二之(1)注释
- Java正则表达式—小应用—简易爬虫
- Java正则表达式—小应用—简易爬虫
- JAVA SE 8 学习笔记(五)并发增强
- Convention 插件(1)
- 在windows上实现java6和Java8共存解决办法
- MyEclipse安装插件的几种方法 转
- Config Browser 插件
- java的重载、覆盖和隐藏的区别
- Java数据持久层框架 MyBatis之背景知识二
- Java 中的“点点点” 什么意思? Java中 … 三个点是什么意思?
- 国内国外最好的java开发论坛及站点 [转]
- Java-final修饰符
- Android+ eclipse开发快捷键