No_16_0223 Java基础学习第四天

文档版本开发工具测试平台工程名字日期作者备注
V1.02016.02.23lutianfeinone


选择结构(switch语句)
  • switch语句格式:
 
 
  1. switch(表达式) {
  2. case 1
  3. 语句体1;
  4. break;
  5. case 2
  6. 语句体2;
  7. break;
  8. default
  9. 语句体n+1;
  10. break; //可以省略
  11. }
  • 格式解释

    • switch表示这是switch语句
      • 表达式的取值:byte,short,int,char
      • JDK5以后可以是枚举
      • JDK7以后可以是String
    • case后面跟的是要和表达式进行比较的值
    • 语句体 部分可以是一条或多条语句
    • break表示中断,结束的意思,可以结束switch语句
    • default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
  • 执行流程

    • 首先计算出表达式的值
    • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
    • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

  • 注意事项

    • case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
    • default可以省略吗?
      • 可以省略。一般不建议因为其作用是对不正确的情况给出提示。除非判断的值是固定的。(单选题)
    • break可以省略吗?
      • 可以省略,一般不建议。否则结果可能不是你想要的
    • default的位置一定要在最后吗?
      • 可以出现在switch语句任意位置。
    • switch语句的结束条件
      • 遇到break
      • 执行到程序的末尾
  • 例题:

 
 
  1. int x = 2;
  2. int y = 3;
  3. switch(x){
  4. default:
  5. y++;
  6. case 3:
  7. y++;
  8. case 4:
  9. y++;
  10. }
  11. System.out.println("y="+y);
  • 分析:
    • 先跳转到default : y = 4
    • 再跳转到case 3: y = 5
    • 再跳转到case 4: y = 6
    • 已执行到swith尾部,跳出 所以y = 6
补充知识点:键盘字符串输入
  • String s = sc.nextLine();

  • if和switch应用场景区分:

    • if语句使用场景:
      • 针对结果是boolean类型的判断
      • 针对一个范围的判断
      • 针对几个常量值的判断
    • switch语句使用场景:
      • 针对几个常量值的判断

循环结构

  • 循环语句的组成
    • 初始化语句:
      • 一条或者多条语句,这些语句完成一些初始化操作。
    • 判断条件语句:
      • 这是一个boolean 表达式,这个表达式能决定是否执行循环体。
    • 循环体语句:
      • 这个部分是循环体语句,也就是我们要多次做的事情。
    • 控制条件语句:
      • 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
for结构循环
  • for循环语句格式:
 
 
  1. for(初始化语句;判断条件语句;控制条件语句) {
  2. 循环体语句;
  3. }
  • 执行流程
    • A:执行初始化语句
    • B:执行判断条件语句,看其结果是true还是false
      • 如果是false,循环结束。
      • 如果是true,继续执行。
    • C:执行循环体语句
    • D:执行控制条件语句
    • E:回到B继续
典型应用
  • 1~100间数据之和
 
 
  1. for(int x=1;x<=100;x++){
  2. sum +=x;
  3. }


  • 1~100间偶数和
 
 
  1. //方式1
  2. for(int x=1;x<=100;x++){
  3. if(x%2 == 0){
  4. sum +=x;
  5. }
  6. //方式2
  7. for(int x=0;x<100;x+=2){
  8. sum +=x;
  9. }
  10. }


  • 求5的阶乘
 
 
  1. int jc=1;
  2. for(int x=1;x<=5;x++){
  3. jc*=x;
  4. }
  • 在控制台输出所有的“水仙花数”(其各位数字的立方和等于该数本身,eg:153 = 1*1*1 + 5*5*5 +3*3*3)
 
 
  1. class ForDemo{
  2. public static void main(String[] args){
  3. for(int x=100;x<1000;x++){
  4. int ge = x%10;
  5. int shi= x/10%10;
  6. int bai= x/10/10%10;
  7. if(x ==(ge*ge*ge + shi*shi*shi + bai*bai*bai)){
  8. System.out.println("shuixianhua:"+x);
  9. }
  10. }
  11. }
  12. }

while循环语句

  • while循环语句格式:
    • 基本格式
 
 
  1. while(判断条件语句) {
  2. 循环体语句;
  3. }
* 扩展格式
 
 
  1. 初始化语句;
  2. while(判断条件语句) {
  3. 循环体语句;
  4. 控制条件语句;
  5. }
  • for循环语句和while循环语句可以等价转换,但还是有些小区别的
    • 使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
    • 场景区别:
      • for循环适合针对一个范围判断进行操作
      • while循环适合判断次数不明确操作

do…while循环语句格式:

  • 基本格式
 
 
  1. do {
  2. 循环体语句;
  3. }while((判断条件语句);
  • 扩展格式
 
 
  1. 初始化语句;
  2. do {
  3. 循环体语句;
  4. 控制条件语句;
  5. } while((判断条件语句);
  • 练习题1:
 
 
  1. class ForTest{
  2. public static void main(String[] args){
  3. for(int i=1;i<=9;i++){
  4. for(int j=1;j<=i;j++){
  5. System.out.print(j+"*"+i+"=" +i*j+";\t");
  6. }
  7. System.out.println();
  8. }
  9. }
  10. }
  • 注:
    • ’\t’:Tab键
    • ‘\r’:回车
    • ‘\n’:换行

跳转控制语句

  • Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
  • break 中断
  • continue 继续
  • return 返回

  • break的使用场景:

    • 在选择结构switch语句中
    • 在循环语句中
    • 离开使用场景的存在是没有意义的
  • break的作用:

    • 跳出单层循环
    • 跳出多层循环
      • 带标签的跳出
      • 格式:标签名: 循环语句
      • 标签名要符合Java的命名规则
  • Eg:跳出多层循环

 
 
  1. wc:for(int x=0;x<3;x++){
  2. nc:for(int y=0;y<4;y++){
  3. if(y==2){
  4. break wc; //跳出外出循环。
  5. }
  6. }
  7. }


  • continue的使用场景:
    • 在循环语句中
    • 离开使用场景的存在是没有意义的
  • continue的作用:

    • 单层循环对比break,然后总结两个的区别
      • break 退出当前循环
      • continue 退出本次循环,进入下一次执行。
  • Eg:

 
 
  1. class ContinueDemo{
  2. public static void main(String[] args){
  3. for(int x=0;x<10;x++){
  4. if(x==3){
  5. break;
  6. continue;
  7. }
  8. System.out.println(x);
  9. }
  10. }
  11. }
  12. //当使用break时,输出结果:0,1,2
  13. //当使用continue时,输出结果0,1,2,4,5,6,7,8,9


  • return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。
  • Eg:
 
 
  1. class ReturnDemo{
  2. public static void main(String[] args){
  3. for(int x=0;x<10;x++){
  4. if(x==2){
  5. System.out.println("Exit");
  6. break;
  7. continue;
  8. return;
  9. }
  10. System.out.println(x);
  11. }
  12. System.out.println("Over");
  13. }
  14. }
  15. //break结果:0,1,Exit,Over
  16. //continue结果:0,1,Exit,3,4,5,6,7,8,9,Over
  17. //return结果:0,1,退出(直接退出了main方法)




转载于:https://www.cnblogs.com/lutianfei/p/5213651.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值