1.顺序结构
2.判断结构:
if语句:
1.if(条件表达式)
{
执行语句;(如果执行语句只有一条,可以省略大括号)
}
2.if(条件表达式)
{
执行语句;
}else{
执行语句;
}
3.if(条件表达式)
{
执行语句;
}
else if{
执行语句;
}
else{
执行语句;
}
第二种格式ifelse语句的简写形式:三元运算符。
变量 = 调教表达式?表达式1:表达式2;
好处:可以简化ifelse的写法
弊端:运算符必须要有一个运算结果,所以表达式1和表达式2需要是一个值。
int a=9,b;
b = (a>1)?100:200;
//可以替代
if(a>1)
b = 100;
else
b = 200;
//但是
if(a>1)
System.out.println(a);
else
System.out.println(b);
//不能被三元运算符替代,因为表达式没有运算结果,不能赋值。
switch语句:
switch(a)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
case 取值3:
执行语句;
break;
default:
执行语句;
}
注意:
- switch 判断的内容可以为可以提升为int型的数据类型,String型,Enum型。
- case之间与default没有顺序。先执行第一个case,没有匹配的case,再执行default。
- 结束switch语句可以是执行到break语句或者执行到switch的结束大括号处。如果匹配的case或者default没有对应的break语句,程序会继续向下执行,忽略case语句,执行可以执行的语句,直到遇到break或者switch结尾。
如果判断的具体数值不多,而且符合switch可以判断的数据类型。虽然两种都可以使用,
建议使用switch,因为switch语句把case的值全部加载到内存中,所以效率较高。
如果是对区间的判断,或者对结果为boolean型的判断,使用if,if使用范围更广。
3.循环结构:
while 和do while 语句:
while(条件表达式)
{
执行语句;
}
do
{
执行语句;
}
while (条件表达式);
do while的特点是无论条件是否满足,循环体至少被执行一次。
for语句:
for(初始化表达式;循环条件表达式;循环后操作表达式)
{
执行语句;
}
for语句运行顺序:初始化表达式只读一次,然后判断循环条件表达式是否为真,
如果为真,执行循环体,然后执行循环后操作表达式。接着继续判断循环条件,
重复以上过程,直到循环条件不满足为止。
Test:
for (System.out.println("a");System.out.println("b") ;System.out.println("c") )
{
System.out.println("d");
}
循环条件不为boolean型,编译失败。
while和for语句可以互换,如果循环时需要定义变量,for内部定义的变量(局部变量)在循环结束
时会在内存中被释放,而while使用的变量(成员变量)循环结束后还可以继续使用。
最简单的死循环格式:
while(true){}
for(;;){}
累加思想:通过变量记录住每次变化的结果,通过循环的形式,进行累加动作。
计数器思想:通过一个变量记录住数据的状态变化。
for嵌套(大圈套小圈)打印九九乘法表:
for (int x=1; x<10 ;x++ )
{
for (int y=1; y<=x; y++)
{
System.out.print(y+"*"+x+"="+x*y+"\t");//使用制表符
}
System.out.println();
}
4.break和contine语句:
break:应用在选择结构和循环结构
continue:应用于循环结构
- 这两个语句如果离开应用范围,没有存在意义。
- 这两个语句单独存在,下面不能有其他语句,因为执行不到。
- break表示跳出循环并结束循环,continue是跳出本次循环继续执行下次循环。
- 可以使用标号,指定具体跳出哪个循环。