/**
//语法结构——程序流程控制 指的就是java中的语句。
顺序结构/判断结构/选择结构/循环结构
//顺序结构
//判断结构
//if语句有三个格式:都是单条语句。只要有一个满足,程序马上就会结束。
//if(条件表达式)
{
执行语句;
}
说明:如果if控制语句只有一句的情况下,那么可以不用大括号,即if在没有大括号的前提下,只控制离其最近的语句。但是严谨的前提下,建议最好加上大括号。
// if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
说明:三元运算符是这种格式的简写形式,但是还是有区别。即运算完必须要有结果,但是这种if语句运算完可以没有结果。当然,三元表达式还可以写在别的表达式语句中。
//
if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
。。。。
else
{
执行语句;
}
练习:需求1:根据用户定义的数值不同,打印对应的星期英文。
需求2:根据用户指定月份,打印该月份所属的季节
345春季,678夏季
提高代码复用性,没必要老写一样的语句。
我们做软件第一步一定要是先对数据进行判断,只有正确的数据才有软件帮他计算,非正确的运算给用户温馨提示,不需要进入软件运算。这才是做软件的基本原则和基本道理。降低我们的软件占内存的使用。
//选择语句
格式有四个关键字,而判断语句只有两个关键字。
switch/case/break/default。
//格式
switch(条件表达式)
{
case取值1:
执行语句;
break;
case取值2:
执行语句;
break;
case取值3:
执行语句;
break;
case取值4:
执行语句;
break;
。。。
default://相当于else语句
执行语句;
break;//这个可以省略,因为到了结尾处,自动结束;
}
说明:switch语句的四个特点:
1:被选择的表达式的值只接受四种类型:byte,short,int,char;
2:case之间与default之间没有顺序,只是在没有匹配的case就执行default,他们的执行顺序是固定的,必须是先执行case,最后执行default,但是他们的位置没有先后。
3:switch结束有两种方式:break和大括号结束。因此这里要注意每一个case后一定要带好break,不然很容易会出现执行错误,因为不结束就会继续执行后面的语句直到大括号结束。或者利用不加break来表示其他的意思。
if除了可以判断具体数值,还可以判断区间,switch只可以判断数值,switch不能判断boolean数据。
如果要对具体数值进行判断数值不多并且符合四种类型的数据用switch完成。switch加载就全部进入软件了,但是if要一条一条来加载,一般switch比if语句会稍微快一些了,效率稍微高些。但if使用的范围会更广。
对于7.0的jdk,可以判断字符串了。
*/
//程序流程控制——循环结构:即表示使用语句结构就在做循环动作。
//循环结构即指在条件满足的前提下,该语句会执行循环体,并且还会自动回到条件继续判断(只回到了条件语句的部分,没有回到初始化表达式的地方,否则条件永远都没有变化),如此反复,直到条件不符合即结束。其有三种格式:while/do while/for;
//while语句格式
定义初始化表达式
while(条件表达式)
{
循环体(执行语句)
}
说明:if语句只会执行一次就结束,而while语句在条件为true时执行后面的定义的区间(叫做循环体)一次结束后,又会自动回到条件上来继续判断真假,从而继续执行下面的循环体,一直反复直到被干预结束。
//do while语句格式:
定义初始化表达式;
do
{
循环体(执行语句);
}
while;
说明:1、do while语句和while语句的区别:
while语句先判断条件,只有条件满足才执行循环体;
do while语句先执行循环体一次,再判断条件,条件满足,再执行循环体即,简单一句话,do while语句,不论条件是否满足,循环体都至少执行一次。
一般地,while语句比do while语句运用的情况多些,后者用的比较少。
2、do while语句格式与while语句有不同的地方,就是在最后的while后面加了一个分号,表示语句的结束。语句结束一般有两种方式,第一就是大括号的反括号,第二就是使用分号。
3、尤其要注意一点的是,一个语句表达的含义和功能,是在且仅在这个语句内有效,即在两个分号之间有效。
//for语句格式 其识别的步骤顺序非常重要。
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
循环体(执行语句);
}
参与运算时,初始化表达式只执行一次即最开始的第一步,后面不参与执行。
for语句与while语句的区别就是变量的作用域不一样。for语句中初始化表达式是for语句内的内容,在外面不可以使用,语句执行结束,变量就成垃圾了,而while却可以。
在实际应用中for语句可以让内存更优化一些,for语句与while语句是可以互换使用的。
1、变量有自己的作用域。对于for语句来说讲:如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效,for语句执行完毕,该变量在内存中就会被释放。
2、for和while可以进行互换,如果需要单独定义循环增量,用for更为合适。
//总结:
1、什么时候使用循环结构?
当药对某些语句执行很多次的时候,就使用循环结构,会帮我们自动完成程序的执行。
循环结构最常见的有两种一种是while和for,用哪一个,关键看是否需要单独定义增量,以及是否在后面还需要继续使用该变量。
2、各语句中,各表达式一定是合法的,如条件表达式 就必须是有两种结果。同时对与for语句中初始表达式只要合法就行,与后面的两个表达式有没有关系不重要。
3、语句间不同表达用逗号分隔,分号只表示该语句结束。
4、小细节:
无线循环的最简单表现形式。
for(;;){}for语句中条件表达式不写就表示默认为真。
while(true){}
以上是两种最简单的无限循环表示形式。
练习:
1、 获取1~10的和,并打印;
运用循环的思路来做,循环要注意的是,一定要明确哪些语句需要参与循环,哪些语句不参与循环。
2、 1~100之间7的倍数的个数,并打印。
软件开发中两个基本的思想:
累加思想:
原理,通过变量记录住每次变化的结果,通过循环的形式进行累加动作。一个数不断变大或者变小或者字符串不断延长称为累加思想。
计数器思想:
通过一个变量记录住数据的状态变化,也需要通过循环完成。
//语句嵌套形式
是指语句中含有语句。
//循环嵌套。
例子for(intx=0;x<3;x++)
{
for(inty=0;y<4;y++)
{
System.out.print(“ok”);
}
}
结果打印12次ok。
练习,用for嵌套循环打印三角形,打印长方形,以及其他图形。有很多种思路,不要局限于一两种。可以多思考。当然好的方法是尽量少定义新变量,增加内存。要做到优化就尽量少定义新变量。让变量越少越好。
练习,打印九九乘法表。用制表符,制表符是按照表格来的,是都会对齐的。
打印等腰三角型。见41期视频。
//其他流程控制语句 break(跳出) continue(继续)
特点:
1、这两个语句可以单独存在,都有自己独特的作用范围,就是说,离开了这个范围,这个语句的定义是没有意义的;
break语句作用的语句有两个,第一个是switch语句,第二个是循环语句,只有在循环语句内才有效果,用于跳出循环,结束循环结构。
标号只能用于循环上,给循环起名字的一种方式。
continue只能作用与循环结构,其他结构用不了,表示继续循环。结束本次循环,开始继续下一次循环。
continue下面的语句都是废话,没有任何意义。
注意:
1、记住break和continue语句必须要有作用的范围。
2、break语句和continue语句单独存在时,下面不可以有任何语句,因为都 执行不到。