您的位置:首页 > 编程语言 > Java开发

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时,后面直接短路。节省内存空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: