鄙人不才,基础不好,趁着闲时简单学习一下,仅作学习分享,如有不正确地方还请各位看客不吝指出。

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 // Method java/lang/Object."<init>":
()V
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 基础 流程控制的更多相关文章

  1. Java基础-流程控制(04)

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...

  2. java基础 流程控制和条件语句,循环语句

    顺序结构 程序的顺序结构: 如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的, 一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束. if语句 if语句使用bo ...

  3. Java编程基础——流程控制

    Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...

  4. Java的流程控制和C++的异同

    Java的流程控制和C++基本相似 现将不同的地方总结一下,以便快速掌握. Java的特殊流程控制的特殊部分: 1.顺序结构  -- 没有区别 2.分之结构  -- 没有区别 3.循环结构 1> ...

  5. 小白学 Python(8):基础流程控制(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. Java学习--流程控制

    Java学习 流程控制 用户交互Scanner Scanner对象 Java通过Scanner类获取用户的输入 基本语法: Scanner scanner = new Scanner(System.i ...

  7. Java程序流程控制之if-else if-else

    java基础之流程控制(一)    流程控制 Flow Control :       流程控制语句是编程语言中的核心之一.可以分为 分支语句.循环语句和跳转语句.        本讲内容包括分支语句 ...

  8. 黑马程序员——C语言基础 流程控制 选择结构和循环结构

    ---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...

  9. Python基础—流程控制

    一.Python流程控制 计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句.选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的三种程序执行结构流程:顺序结构.选择结构和循 ...

随机推荐

  1. [SD心灵鸡汤]001.每月一则 - 2015.05

    1.既然我的父母不能带给我荣耀,那我要做的就只是带给我的子女荣耀,而不是无聊的嫉妒眼红别人. 2.就人生游戏讲,男人是女人的玩物,女人是魔鬼的玩物.就爱情而言,女人是专业的,男人是业余的. 3.快乐使 ...

  2. [JavaWeb基础] 001.简单的JavaWeb代码和Tomcat配置部署

    简介: 其实说明白了就是J2EE应用开发,前端可以有很多的展现方式,后端由Java做逻辑运算和数据支撑.适用于创建服务器应用程序和服务,为搭建具有可伸缩性.灵活性.易维护性的商务系统提供了良好的机制. ...

  3. JS实现PC端URL跳转到对应移动端URL

    在做移动端网站时,有时因技术问题或其他原因无法制作响应式版面,而移动端页面只能放到子目录下,但是手机端通过搜索引擎进入网站电脑端子页面,无法匹配到移动端页面,使得用户体验很不好,即影响排名也影响转化. ...

  4. Python环境搭建—安利Python小白的Python和Pycharm安装详细教程

    人生苦短,我用Python.众所周知,Python目前越来越火,学习Python的小伙伴也越来越多.最近看到群里的小伙伴经常碰到不会安装Python或者不知道去哪下载Python安装包等系列问题,为了 ...

  5. Linux(十) —— 使用 rz 和 sz 命令上传与下载

    以CentOS 7 系统为例,一般上传下载都是使用的第三方工具,但是在操作上并不方便,每次都要找到对应的目录才可以执行上传.下载操作,比较麻烦. 而CentOS为例的 Linux 系统可以通过安装 插 ...

  6. 【RT-Thread笔记】BH1750软件包的使用

    BH1750简介 BH1750是一种用于两线制串行总线接口的16位数字型光强度传感器集成电路.利用它的高分辨率可以探测较大范围的光强度变化.(1lx~65535lx). 创建工程.验证 在RT-Thr ...

  7. ASP.NET给图片自动添加水印

    先建一个类,感觉注释已经很详细了,有不懂的欢迎评论 using System; using System.Collections.Generic; using System.Drawing; usin ...

  8. Java实现k个数乘(cheng)(自然数的k乘积问题)

    k个数乘(cheng) 题目描述 桐桐想把一个自然数N分解成K个大于l的自然数相乘的形式,要求这K个数按从小到大排列,而且除了第K个数之外,前面(K-l)个数是N分解出来的最小自然数.例如:N=24, ...

  9. Java实现 LeetCode 328 奇偶链表

    328. 奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂 ...

  10. Java实现 LeetCode 289 生命游戏

    289. 生命游戏 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞具有 ...