选择语句和循环结构
顺序结构
程序从上执行到下一行一行执行
选择结构
根据不同的结果(boolean 表达式),执行不同的代码
为什么要使用逻辑结构?
可以在代码中体现一些逻辑,当满足条件的时候执行对应的操作
if
if(boolean值){
//boolean值为true时执行此代码块操作;
//boolean值为false时不执行此代码块操作;
}
例:
class IfDemo{
public static void main(String[] args){
int age = 17;
if(age>18){
System.out.println("可以去网吧了");
}
}
}
if-else
if(boolean值){
//boolean值为true时执行此代码块操作;
}else{
//boolean值为false时执行此代码块操作;
}
例:
class IfElseDemo{
public static void main(String[] args){
int age = 17;
if(age>18){
System.out.println("可以去网吧了");
}else{
System.out.println("回家玩游戏去");
}
}
}
if-else if-else if-else
if(boolean值){
//boolean值为true时执行此代码块操作;
}else if(boolean值){
//boolean值为true时执行此代码块操作;
}else if(boolean值){
//boolean值为true时执行此代码块操作;
}
...
else{
//如果上面都为false 则执行该代码块
}
例:
class IfElseIfElseDemo{
public static void main(String[] args){
int age = 17;
if(age>18){
System.out.println("可以去网吧了");
}else if(age<18){
System.out.println("回家玩游戏去");
}else{
System.out.println("年轻人去奋斗");
}
}
}
switch:
使用在判断是否等于一个数值的时候
case 值(必须是常量值)
用于解决使用过多eles if的问题(简化ifelse的代码)
switch(byte/short/char/int/String变量等){
case 值:
执行的操作
break;
case 值:
执行的操作
break;
...
default
执行的操作
break;
}
break:结束当前switch语句的执行
没有break:继续执行后面的语句
class MonthChooseDemo{
public static void main(String[] args){
//定义一个 int 类型 变量存放当前月份(month)
int month = 12;
//使用 switch 进行判断
switch(month){
case 1:
case 2:
System.out.println("冬季");
break;
// 3 月到 5 月是打印春季
case 3:
case 4:
case 5:
System.out.println("春季");
break;
//6 月到 8 月打印夏季
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
//9 月到 11 月打印夏季
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
//12 月到 2 月打印夏季
case 12:
System.out.println("冬季");
break;
default :
System.out.println("月份非法");
}
}
}
常见错误
if(boolean)后不用接";"结束
switch和if else对比
switch对常量以外的情况无能为力(如:a>0 && a<100)
if else能够适应更多的场合,所以if else比较灵活。
if和else if每次都是要进行判断的
switch只计算一次,然后表达式的值和每个case的值进行比对
switch只有在常量选择的时候比if else的效率高
switch性能比if else更加高(大概10倍左右)
循环结构
三种循环的执行结果都是一样的,只有语法上的差异
为什么要使用循环结构
让系统做重复的事情
while
while(boolean表达式){
//表达式的结果为true的时候执行,再判断表达式的结果,直到表达式的结果为false为止
}
do while
do{
//循环体
}while(boolean表达式)
do while与while的区别
无论while中的表达式是否为true,都会执行一次循环体
for
for(初始化语句;boolean 表达式;循环后的操作语句){
//循环体
}
初始化:操作只执行一次,在进行循环操作之前
判断:每次在执行之前判断,判断为true进入循环体,判断为false跳出循环体,执行循环之后的代码
每次循环体结束后进行一次循环后的操作语句
常用循环体变量
i,j,k,m,n
死循环
//while
while(true){
}
//do while
do{
}while(true)
//for
for(;;){
}
嵌套循环
需要循环执行另外的循环
for(int i = 0 ; i < 10 ; i++){
for(int j = 0 ; j < 10 ; j++){
....
}
}
控制循环
continue
跳过当前这一次循环,继续下一次的循环执行
for(int i = 0 ; i < 10 ; i++){
continue;
}
break
跳出循环
for(int i = 0 ; i < 10 ; i++){
break;
}
return
结束整个方法
for(int i = 0 ; i < 10 ; i++){
return;
}