分支结构
if和switch
if(布尔值){}…else if(布尔值){}…else{}
switch(表达式){case:…break}//表达式只支持四中类型byte short int char
区别
if相当于判断题,只有两个关键字if else。if能判断区间,运算结果是布尔的,switch不行。if是顺序执行。当是具体数值,数值不多,用switch,switch较if高效。
switch相当于选择题,如果default在前面也不会先走他,先走有具体选项的。
switch语句结束有两种,一个是大括号结束,一个是break(所以case要break)。如果没有break,他执行完了第一case,后不会判断直接往下执行,直到遇到结束的大括号或break
while和do while
while(条件){}
do{}while(条件)
区别
while先判断条件,只有条件满足才只想循环条件
do while 先执行循环条件,再判断条件,条件满足,再执行循环体,
do while无论条件是否满足,先执行一遍
for
for(初始化表达式;循环条件表达式;循环后的操作表达式){ }
区别
while和for有什么不同
变量的作用范围,读到for语句创建出来x,离开了for的大括号,之后就消失了在内存中释放了。而while则会一直存在。
总结
什么时候使用循环结构,当对某些语句执行多次时,就要使用循环结构
for和while可以互换,如果需要定义循环增量,用for更合适
如果一变量,这个变量数值变化,用循环操作变量,自增好多次,这个变量下面还会用,则用while
// 无限循环的最简单表现形式
for(;;){}
while(true){}
嵌套for循环
打印一个这样的图案
//练习2,打印等腰三角形
for(int y=0;y<5;y++) {
//空格是尖朝下,改变初始化值,让初始化随外循环变化
for(int z=y;z<5;z++) {
System.out.print(" ");
}
//星号是尖朝上,可以改变条件,让条件随着外循环变化
for(int s=0;s<=y;s++) {
System.out.print("* ");
}
System.out.println();
}