三.运算符&流程控制

  运算符---http://blog.csdn.net/typa01_kk/article/details/45000535

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

流程控制语句又分成顺序结构、选择结构、循环结构,中断。

——顺序结构

是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

总的来说:写在前面的先执行,写在后面的后执行。

——选择结构(分支结构)

       选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

       Java语言提供了两种选择结构语句:if(如果)语句、switch语句

——if

if语句有三种格式;

格式一:

A

if(true) {

     语句体  B

}

         后续语句   C

执行流程:首先判断关系表达式看其结果是true还是false,如果是true就执行语句体,如果是false就不执行语句体

注意事项:

关系表达式无论简单还是复杂,结果必须是boolean类型

if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。

  格式二:

if(关系表达式) {

语句体1;

}

else {

语句体2;

}

执行流程:首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2。

注: 三元运算符根据比较判断后,给出的也是两个结果,所以,这种情况和if语句的第二种格式很相似,他们在某些情况下应该是可以相互转换的。

  if语句第二种格式和三元运算符

  三元运算符的操作都可以使用if语句改进,反之不成立

  什么时候不成立呢?  当if语句控制的语句体是一条输出语句的时候,就不成立。因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果。

格式三:

if(关系表达式1) {

语句体1;

}else  if (关系表达式2) {

语句体2;

}

else {

语句体n+1;

}

执行流程:首先判断关系表达式1看其结果是true还是false,如果是true就执行语句体1,如果是false就继续判断关系表达式2看其结果是true还是false,如果是true就执行语句体2,如果是false就继续判断关系表达式…看其结果是true还是false…,如果没有任何关系表达式为true,就执行语句体n+1。

 

——switch

格式:

switch(表达式) {

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

default:

语句体n+1;

break;

}

格式解释:

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;

执行到程序的末尾;

if语句使用场景:

针对结果是boolean类型的判断

针对一个范围的判断

针对几个常量值的判断

switch语句使用场景:

针对几个常量值的判断

——循环结构

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

——循环语句的组成

初始化语句:

一条或者多条语句,这些语句完成一些初始化操作。

判断条件语句:

这是一个boolean 表达式,这个表达式能决定是否执行循环体。

循环体语句:

这个部分是循环体语句,也就是我们要多次做的事情。

控制条件语句:

这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

——for循环语句

for循环语句格式:

 for(初始化语句;判断条件语句;控制条件语句) {

                    循环体语句;

               }

          执行流程:

A:执行初始化语句

B:执行判断条件语句,看其结果是true还是false

如果是false,循环结束。

如果是true,继续执行。

C:执行循环体语句

D:执行控制条件语句

E:回到B继续

注意事项:

判断条件语句的结果是一个boolean类型;

循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略;

——while循环语句

while循环语句 格式:

初始化语句;

while(判断条件语句:boolean) {

循环体语句;

控制条件语句;

}

——循环结构(for循环和while循环的区别)

         for循环语句和while循环语句可以等价转换,但还是有些小区别的。

         使用区别:

控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。

场景区别:

for循环适合针对一个范围判断进行操作;

while循环适合判断次数不明确操作;

——do…while循环语句

do…while循环语句格式:

初始化语句;

do {

循环体语句;

控制条件语句;

} while(判断条件语句);

——三种循环结构的区别及注意事项

       三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有区别的:

do…while循环至少会执行一次循环体。

for循环和while循环只有在条件成立的时候才会去执行循环体

注意事项:

写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。

如下代码是死循环

while(true){};

for(;;){};

——breakcontinue

——break的使用场景:

在选择结构switch语句中;

在循环语句中;

离开使用场景的存在是没有意义的

——break的作用:

跳出单层循环;

跳出多层循环;

带标签的跳出:

格式:标签名: 循环语句

标签名要符合Java的命名规则

——continue的使用场景:

在循环语句中;

离开使用场景的存在是没有意义的

——continue的作用:

退出本次循环(同学们可以对比着break来理解)

Q12:小明的妈妈每天给她2.5元钱,他都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,他都会花去6元钱,请问,经过多少天,小他才可以存到100元钱。

 

         

        

 

 

 

 

Core Java(三)的更多相关文章

  1. Core Java (十一) Java 继承,类,超类和子类

    Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报  分类: java(58) 读 ...

  2. applet示例 WelcomeApplet.java <Core Java>

    import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.Grap ...

  3. Core Java Volume I — 1.2. The Java "White Paper" Buzzwords

    1.2. The Java "White Paper" BuzzwordsThe authors of Java have written an influential White ...

  4. Core Java Volume I — 4.7. Packages

    4.7. PackagesJava allows you to group classes in a collection called a package. Packages are conveni ...

  5. Core Java Interview Question Answer

    This is a new series of sharing core Java interview question and answer on Finance domain and mostly ...

  6. Core Java 学习笔记——1.术语/环境配置/Eclipse汉化字体快捷键/API文档

    今天起开始学习Java,学习用书为Core Java.之前有过C的经验.准备把自己学习这一本书时的各种想法,不易理解的,重要的都记录下来.希望以后回顾起来能温故知新吧.也希望自己能够坚持把自己学习这本 ...

  7. Core Java读书笔记之String

    Java里面的String Conceptually, Java Strings are sequences of Unicode characters. Java里面的String都是Unicode ...

  8. 从同步阻塞聊到Java三种IO方式

    本文总结自 https://zhuanlan.zhihu.com/p/34408883, https://www.zhihu.com/question/19732473中愚抄的回答, http://b ...

  9. 并发编程之 Java 三把锁

    前言 今天我们继续学习并发.在之前我们学习了 JMM 的知识,知道了在并发编程中,为了保证线程的安全性,需要保证线程的原子性,可见性,有序性.其中,synchronized 高频出现,因为他既保证了原 ...

随机推荐

  1. C# 3.0新加特性

    类型推断 申明变量的时候,可以不用直指定类型: var i = 5; var s = "Hello"; //两种写法是一样的 int i = 5; string s = " ...

  2. 三维建模:方法之CSG与B-Rep比较

    源自于百度百科:实体造型--- 三维模型特征表示方法: 计算机中表示三维形体的模型,按照几何特点进行分类,大体上可以分为三种:线框模型.表面模型和实体模型.如果按照表示物体的方法进行分类,实体模型基本 ...

  3. .bat 打开程序

    为什么要用.bat打开程序. 因为一个一个难得点 怎么做 百度的,start 程序路径\程序 改进 点击bat,不显示dos窗口. 新建.vbs文件 Set shell = Wscript.creat ...

  4. Asp.net Core 源码-SessionExtensions

    using Microsoft.AspNetCore.Http; using Newtonsoft.Json; namespace SportsStore.Infrastructure { publi ...

  5. Pyhton学习——Day1

    1.什么是机器码?什么是字节码?机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据. 通常意义上来理解的话,机器码就是计 ...

  6. 算法46----移除K位数字

    一.题目:移除K位数字 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示 ...

  7. [poj 2411]Mondriaan's Dream (状压dp)

    Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 18903 Accepted: 10779 D ...

  8. MVC基于Struts2的CRUD,java+bean+struts

    1,所需jar包,将jar包导入lib中 2,项目目录结构 3,struts.xml <?xml version="1.0" encoding="UTF-8&quo ...

  9. 在 CentOS7 上配置 nginx 虚拟主机

    创建配置文件保存目录,其中 sites-available 用来实际保存配置文件,sites-enabled 用来保存符号链接 : mkdir /etc/nginx/sites-available m ...

  10. Git学习总结(11)——Git撤销操作详解

    本文主要讨论和撤销有关的 git 操作.目的是让读者在遇到关于撤销问题时能够方便迅速对照执行解决问题,而不用去翻阅参数繁多的 git 使用说明. 一开始你只需了解大致功能即可,不必记住所有命令和具体参 ...