Java控制语句详解

Java中控制语句只有七种,分别是if,switch,for,while,do-while,break和continue。

目录

一、选择结构

 1.if语句

2.switch语句

二、循环结构

1.for循环

2.while循环 

3.do-while循环 

三、选择语句

1.break语句

2.continue语句

3.continue和break的区别


一、选择结构

 1.if语句

又称为分支语句,常用于单,双分支判断【也可用于多分支判断】

  if语句的四种语法格式:

第一种:单分支

if(布尔表达式){
  Java语句....
 //如果布尔表达式为真,那么执行这里面的Java语句,否则不执行
}

********************************************************************************

第二种:双分支

if(布尔表达式){
  Java语句....
//如果布尔表达式为真,那么执行这里面的Java语句
}
else{
  Java语句....
//如果布尔表达式为假,那么执行这里面的Java语句
}


*******************************************************************************

第三种:多分支

if(布尔表达式1){
  Java语句....
  //如果布尔表达式1为真,执行这里面的Java语句
}else if(布尔表达式2){
  Java语句....
  //如果布尔表达式2为真,执行这里面的Java语句
}else if(布尔表达式3){
  Java语句....
  //如果布尔表达式3为真,执行这里面的Java语句
}
.....


*********************************************************************************

第四种:多分支

if(布尔表达式1){
  Java语句....
  //如果布尔表达式1为真,执行这里面的Java语句
}else if(布尔表达式2){
  Java语句....
  //如果布尔表达式2为真,执行这里面的Java语句
}else if(布尔表达式3){
  Java语句....
  //如果布尔表达式3为真,执行这里面的Java语句
}else{
  Java语句....
  //如果以上表达式都为假,那么执行这里面的Java语句
}

注:if语句大括号省略,表示后面只可以跟一句Java语句

	if(sex)
		System.out.println("男");
		System.out.println("HelloWorld!"); // 以上的这3行代码没有问题,合乎语法。
	/*
	else // 这一行编译报错,因为else缺少if
		System.out.println("女");
	*/

	以上代码编译器会自动转换为:
			if(sex){
				System.out.println("男");
			}
			System.out.println("HelloWorld!"); 
			else// 这一行编译报错,因为else缺少if
				System.out.println("女");

总结:

  1. if语句的判断条件必须为布尔值或布尔表达式
  2. if语句中只要有1个分支执行了, 整个if语句就结束了。
  3. 凡是带有else分支的,一定可以保证会有一个分支执行。
  4. 当分支当中“java语句;”只有1条,那么大括号{}可以省略,但为了 可读性,最好不要省略。

实战: 

//需求:假设系统给定一个人的年龄(这个年龄需要从键盘输入),根据年您判断他属于生命的哪个
//阶段.
//   【0~5】    幼儿
//   【6~10】   少儿
//   【11~18】  青少年
//   【19~35】  青年
//   【36~55】  中年
//   【56~150】 老年

public class hello {
    public static void main(String[] args) {
//这段内容看不懂返回上一章获取键入内容
  java.util.Scanner s=new java.util.Scanner(System.in);
  System.out.print("请输入你的年龄:");
  int num=s.nextInt();
  String grade="您的年龄不合法";

//逻辑业务判断
  if(num<0||num>150){
      System.out.println(grade);
  }
  else {
     if(num<=5){
         grade="您处在生命周期的幼儿阶段";
     }
     else if(num<=10){
          grade="您处在生命周期的少儿阶段";
      }
     else if(num<=18){
         grade="您处在生命周期的青少年阶段";
     }
     else if(num<=35){
         grade="您处在生命周期的青年阶段";
     }
     else if(num<=55){
         grade="您处在生命周期的中年阶段";
     }
     else{
         grade="您处在生命周期的老年阶段";
     }
      System.out.println(grade);
   }


    }
}

例子很简单,但是我们应该注意怎么写才能让代码的执行效率最高

2.switch语句

分支语句,常用于多分支判断

语法格式:

	switch(值){
	case 值1:java语句;...break;//如果值与值1相等,那么执行这里面的Java语句

	case 值2:java语句;...break;//如果值与值2相等,那么执行这里面的Java语句

	case 值3:java语句;...break;//如果值与值3相等,那么执行这里面的Java语句

	default:java语句;//以上值都不想等,那么执行这里面的Java语句

	}

注意:每一个分支后面都需要写上break表示程序在执行完分支后立即退出,不然会出现case穿透

case合并与case穿透

//case合并
 switch (12){
     case 12:
     case 13:
     case 14:
     case 15:
         System.out.println("他们是共用的");
 }
//运行结果:他们是共用的

解析:以本代码为例,表示12,13,14,15只要满足其中一个就可以执行System.out.println("他们是共用的");




//case穿透
switch (12){
     case 12: System.out.println("1");
     case 13: System.out.println("2");
     case 14: System.out.println("3");
}
//输出结果:1
           2
           3
解析:当12与12匹配后立即执行后面的代码,由于没有break,程序不会退出,会继续执行下面所有
      选项的Java语句

总结:

  1. switch语句只支持int和String,但是byte,short,char也可以,因为byte short char可以进行自动类型转换,其他类型需要强制转换

  2. 为避免case穿透,每一个分支后面都要写上break【default不是必须要写

  3. case可以合并

二、循环结构

1.for循环

语法格式:

	for(初始化表达式; 条件表达式; 更新表达式){
		循环体; // 循环体由java语句构成,需要重复执行的代码片段
		java语句;
		java语句;
		java语句;
		java语句;
		....
	}

注: 

int a=0;
for (;a<5;a++){
    System.out.println(a);//0,1,2,3,4
}

    System.out.println(a);//5


for ( int a=0;a<5;a++){
    System.out.println(a);//0,1,2,3,4
}

    System.out.println(a);//找不到符号变量a


解析:切记不要把其他编程语言的迭代作用域与Java混淆,比如JS。第一段代码是调用了for括号外面的
变量a,a在for{}的外面,所以可以直接访问到,在循环体结束后将迭代变量的值又返还给了变量a,所以
在外面a的值在迭代的作用下变为了5
      第二段代码由于a被定义在for{}里面,结果仍然可以可以返还给a,但此时a为局部变量了,外面无
法访问到

总结:

  1. 初始化表达式 ;布尔表达式;更新表达式都不是必须的但是“;”是必须的。
  2. 初始化表达式最先执行,并且在整个for循环当中只执行一次
  3. 条件表达式必须是true/false,不能是其它值

2.while循环 

语法格式:

	while(布尔表达式){
		循环体;
	}
//判断布尔表达式的结果,如果为true就执行循环体,循环体结束之后,再次判断布尔表达式的结果,
//如果还是true,继续执行循环体,直到布尔表达式结果为false,while循环结束。

for与while的转换 

	for(初始化表达式; 布尔表达式; 更新表达式){
		循环体;
	}
	
	初始化表达式;
	while(布尔表达式){
		循环体;
		更新表达式;
	}

总结: while循环的循环体可能执行次数为0次。

3.do-while循环 

语法格式:

	do {
		循环体;
	}while(布尔表达式);

//先执行循环体当中的代码,执行一次循环体之后,判断布尔表达式的结果,如果为true,则继续执行
//循环体,如果为false循环结束。

总结: 

  1. 因为while后是()结尾不是{}结尾,所以while后有分号!!
  2. 至少执行一次

三、选择语句

1.break语句

跳出指定循环:

第一步:你需要给循环起一个名字,例如:
	a: for(){
		b:for(){
			if(条件表达式) break a;
				code1;
				code2;
				code3;
		}
	}
第二步:终止:break a;


//关于break与continue语句跳出循环的易错点可参考JS专栏第五篇“JS中的语句详解与函数定义”,这与Java是一样的

总结:

  1. break语句是一个单词成为一个完整的java语句
  2. break语句使用在switch语句当中,用来终止switch的语句执行,防止case穿透
  3. break;语句用在循环语句当中,用来终止循环的执行。
  4. 默认情况下,break语句终止的是离它最近的循环语句。也可以指定终止某个循环,需要给循环起名,采用的语法:break 循环名称;

2.continue语句

使用continue跳过指定循环

	a:for(;;更新表达式1){
			b:for(;;更新表达式2){
				if(条件表达式){
					continue a;
				}
				code1;
				code2;
				code3;
			}
		}

总结:

  1. continue语句是一个单词成为一个完整的java语句
  2. 一但执行到continue,continue以下代码不执行,直接执行更新表达式,终止当前"本次"循环,进入下一次循环。

3.continue和break的区别

  • break表示循环不执行了
  • continue表示结束本次循环,直接进入下一次循环继续执行

最后给大家总结极其重要的一点:所有控制语句都可以嵌套使用,但是嵌套使用时候一定要保证格式完美【该缩进缩进】 

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值