• Java基础流程控制


      本文由广州疯狂软件java培训分享:

      Java流程主要可以分为:

      顺序(可以按照正常顺序一步步往下运行的)

      选择(三元操作符[?:];if else;switch)

      循环(for;while;do while;)

      控制(break;continue;)

      顺序流程没啥好说的,代码没问题的话一般都可以按顺序运行

      选择流程中

      1.之前在论坛中有看的别人说三元操作符不会进行短路操作,这个说法其实是错误的

      例如

      int i = 1;

      int j = i==2 && ++i == 2?1:2;

      System.out.println(i);

      System.out.println(j);

      2.为什么有了三元操作符还要有ifelse呢?有人说三元操作符不能嵌套,这个显然是不正确。

      上面的例子第二行改成.

      int j = i==2 && ++i == 2?1:(i>3?3:2);

      也是可以正常运行的。可是这样做程序的可读性就很差了。个人认为ifelse主要是为了提高程序可读性存在的。

      3.效率方面,直接写程序观察运行时间是不靠谱的,这与你电脑运行时环境关系很大。但是我们可以用javap进行反编译进行查看的

      public class Test{

      public void test()

      {

      int i = 1;

      int j;

      j = i==1?1:2;

      }

      }

      首先运行 javac Test.java进行编译,然后运行javap -c Test 进行反编译。 得到如下结果

      Compiled from "Test.java"

      public class Test {

      public Test();

      Code:

      0: aload_0

      1: invokespecial #1

      4: return

      public void test();

      Code:

      0: iconst_1

      1: istore_1

      2: iload_1

      3: iconst_1

      4: if_icmpne 11

      7: iconst_1

      8: goto 12

      11: iconst_2

      12: istore_2

      13: return

      }

      4.关于switch,其实SUN对于switch一直在进行改进,有最开始的支持byte,short,char,int,到1.5的Enum,到1.7的String。可以用于筛选的条件逐渐增多,谁知道以后会不会加上Object呢?

      循环流程中

      1.for循环第一次执行做不做条件判断?

      这个问题平时真的不怎么注意,其实for循环再第一次执行的时候也会进行条件判读的,如果不满足条件一次都不会执行。

      2.while执行前进行判断如果判断不同过就不会执行。

      3.do while先执行一次,然后在做条件判断

      4.循环流程中要特别注意防止死循环

      5.如果有死循环编译会不会报错?

      从来没注意过吧?不会报错的!!运行时候也不会报错,等到真正消耗完系统资源的时候你就闹大了。还是小心为妙

      控制流程

      1.配合switch和循环流程使用,可以控制跳转

      2.配合标签在嵌套循环中使用可以控制循环流向

      疯狂软件Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。高薪从IT名企请来项目经理为学员亲自授课,对学员进行实战教学,在疯狂软件教育,通过大量全真经典企业级项目进行集中培训,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂软件Java培训让你体会java编程的快乐,项目开发的兴奋,成就感,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

  • 相关阅读:
    Python的subprocess子进程和管道进行交互
    python UnicodeEncodeError: 'ascii' codec can't encode characters 解决办法
    如何创建,增加swap
    nginx.conf配置
    15个极好的Linux find命令示例(二)
    15个实用的Linux find命令示例(一)
    vmware 虚拟机 mount :no medium found解决方法
    服务器上的iptables
    源码编译安装MySQL
    ORACLE参数文件
  • 原文地址:https://www.cnblogs.com/gojava/p/3688347.html
Copyright © 2020-2023  润新知