Java语法基础(三)
2016-01-11 14:31
465 查看
流程控制语句
顺序结构选择结构
循环结构
顺序结构
略选择结构
选择结构(if语句)
格式1:if(关系表达式) { 语句体 }
格式2:
if(关系表达式) { 语句体1; }else { 语句体2; }
格式3:
if(关系表达式1) { 语句体1; }else if (关系表达式2) { 语句体2; } … else { 语句体n+1; }
选择结构(switch语句)
语句格式switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; … default: 语句体n+1; break; }
格式的解释
switch : 表示这是switch选择结构 表达式: 这个地方的取值是有限定的 byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case: 后面跟的是要和表达式进行比较的值 语句体: 要执行的代码 break: 表示中断,结束的意思,可以控制switch语句的结束。 default: 当所有的值都和表达式不匹配的时候,就执行default控制的语句。其实它就相当于if语句的else。
执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
注意事项
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
default可以省略吗?
可以省略。一般不建议。除非判断的值是固定的。(单选题)
break可以省略吗?
可以省略,一般不建议。否则结果可能不是你想要的
default的位置一定要在最后吗?
可以出现在switch语句任意位置。
switch语句的结束条件
遇到break 执行到程序的末尾
/* 看程序写结果 */ class SwitchTest { public static void main(String[] args) { int x = 2; int y = 3; switch(x){ default: y++; break; case 3: y++; case 4: y++; } System.out.println("y="+y); // 4 System.out.println("---------------"); int a = 2; int b = 3; switch(a){ default: b++; case 3: b++; case 4: b++; } System.out.println("b="+b); // 6 } }
if和case的区别
在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?if语句使用场景
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景
针对几个常量值的判断
循环结构
循环结构(for)
语句格式for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; }
执行流程
A: 执行初始化语句 B: 执行判断条件语句,看其结果是true还是false 如果是false,循环结束。 如果是true,继续执行。 C: 执行循环体语句 D: 执行控制条件语句 E: 回到B继续
注意事项
A: 判断条件语句的结果是一个boolean类型 B: 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。 C: 一般来说:有左大括号就没有分号,有分号就没有左大括号
/* 需求:在控制台输出所有的”水仙花数” 分析: 我们都不知道什么叫"水仙花数",你让我怎么做呢? 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 举例:153就是一个水仙花数。 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153 A:三位数其实是告诉了我们范围。 B:通过for循环我们就可以实现获取每一个三位数 但是麻烦是如何获取这个三位数的个,十,百位上的数据 我们如何获取一个数据的个,十,百呢? 假设有个一个数据:153 ge: 153%10 = 3 shi: 153/10%10 = 5 bai:153/10/10%10 = 1 qian:x/10/10/10%10 wan: x/10/10/10/10%10 ... C:让ge*ge*ge+shi*shi*shi+bai*bai*bai和该数据比较 如果相同,就把该数据在控制台输出。 */ class ForDemo6 { public static void main(String[] args) { //三位数其实是告诉了我们范围。 for(int x=100; x<1000; x++) { int ge = x%10; int shi = x/10%10; int bai = x/10/10%10; //让ge*ge*ge+shi*shi*shi+bai*bai*bai和该数据比较 if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) { //如果相同,就把该数据在控制台输出。 System.out.println(x); } } } }
循环结构(while)
语句格式基本格式 while(判断条件语句) { 循环体语句; } 扩展格式 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句;
循环结构(do…while)
语句格式基本格式 do { 循环体语句; }while((判断条件语句); 扩展格式 初始化语句; do { 循环体语句; 控制条件语句; } while((判断条件语句);
循环语句的区别
do…while循环至少执行一次循环体。而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。跳转控制语句
break 中断continue 继续
return 返回
跳转控制语句(break)
break的使用场景在选择结构switch语句中
在循环语句中
离开使用场景的存在是没有意义的
break的作用
跳出单层循环
跳出多层循环
带标签的跳出
格式: 标签名: 循环语句 标签名要符合Java的命名规则
class BreakDemo { public static void main(String[] args) { //在 switch 或 loop 外部中断 //break; //跳出单层循环 for(int x=0; x<10; x++) { if(x == 3) { break; } System.out.println("HelloWorld"); } System.out.println("over"); System.out.println("-------------"); wc:for(int x=0; x<3; x++) { nc:for(int y=0; y<4; y++) { if(y == 2) { //break nc; break wc; } System.out.print("*"); } System.out.println(); } } }
跳转控制语句(continue)
continue的使用场景在循环语句中
离开使用场景的存在是没有意义的
continue的作用
单层循环对比break,然后总结两个的区别
break 退出当前循环
continue 退出本次循环
/* continue:继续 使用场景: 循环中。离开此场景无意义。 测试,找到和break的区别: break:跳出单层循环 continue:跳出一次循环,进入下一次的执行 练习题: for(int x=1; x<=10; x++) { if(x%3==0) { //在此处填写代码 } System.out.println(“Java基础班”); } 我想在控制台输出2次:“Java基础班“ break; 我想在控制台输出7次:“Java基础班“ continue; 我想在控制台输出13次:“Java基础班“ System.out.println(“Java基础班”); */ class ContinueDemo { public static void main(String[] args) { for(int x=0; x<10; x++) { if(x == 3) { //break; continue; } System.out.println(x); } } }
跳转控制语句(return)
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。这个在方法的使用那里会在详细的讲解。相关文章推荐
- Java 基本数据类型
- Spring 初始化加载两次
- JAVA常用加密算法
- java 线程池
- java常用类总结
- eclipse alt+/快捷键失效
- Eclipse下使用Ant 【转】
- java_mail 发送邮件
- 对Ansible二次开发来检查服务器的Java程序占用端口数量
- session 失效 java.lang.IllegalStateException异常产生的原因及解决办法
- Eclipse 高亮显示选中的相同变量
- java 解压,压缩文件夹
- JAVA深入研究——Method的Invoke方法。
- 4道JAVA基础题
- eclipse
- java数组转换字符串
- Java文件操作大全
- java实习到初级开发
- eclipse版本代号
- java 解压,压缩单个文件