Java三大流程控制语句:顺序、选择、循环。

if结构、if-else结构、多重if、嵌套if。

 public class Test {
public static void main(String[] args){
int a=1;
int b=1;
if (a==b)
a++; //不加大括号,只能有一句语句
else
a--; if(a==b){
a++;
b++;
}else{
a--;
} if(a<10) //多重if结构
a++;
else if(a<20)
a--;
else if(a<30)
b--;
else
a*=10; if(a==b){ //嵌套if结构,将整个if块插入另一个if块中
if(a>0)
if(a==1)
a++;
}else{
b+=10;
} }
}

if结构:判断条件是布尔类型,是一个范围。

switch结构:判断条件是常量值。

 public class Test {
public static void main(String[] args){
int x=4;
switch (x){
case 1:System.out.println(x);
case 2:System.out.println(x);
case 3:System.out.println(x);
case 4:System.out.println(x); //运行结果444
case 5:System.out.println(x);
default:System.out.println(x);
}
System.out.println("-----------------------------------------------");
switch (x){
case 1:System.out.println(x);
break;
case 2:System.out.println(x);
break;
case 3:System.out.println(x);
break;
case 4:System.out.println(x); //运行结果4
break;
case 5:System.out.println(x);
break;
default:System.out.println(x);
}
}
}

switch用于多分支选择,代码中的x可以是int 型或能自动转换为int型的变量、final定义的下述类型常量或数值(包括整数或字符)、整数表达式(含有变量或常量均可),包括:byte、short、char、int以及它们对应的包装类(Java7后支持String类型)。

为什么呢?因为byte、short、char类型的值能被隐式地转换为int型,long、float、double类型不能隐式地转换为int型,因此不能作为switch或case的常量参数或常量表达式中,除非对其强转为int型。

如:switch(1)        switch(a)[假设int a=1; short a=1;  final int a=1;...]              switch('a')         switch(2+1)             switch(a+2)[假设a已被定义]

case后对应其常量值、整数表达式(不能出现变量,即使是final型也不可以,只能是整数数字)、final型的常量、字符串

如:case 1:            case 'a':              case 1+1:               case z: [假设final int z=1;]                  case "hello":

switch对字符串的支持,也是因为int型值的匹配。对case后的String对象调用hashCode()方法,会得到一个int型的hash值,用此hash值唯一标识这个case。匹配时首先调用这个字符串的hashCode()函数,获取到一个hash值,用这个hash值去匹配所有case,若没有匹配到,说明不存在;若匹配成功,接下来调用字符串的String.equals()方法进行匹配。因此,String变量、case子句的字符串都不要为null。

如果不想要匹配后的case后的语句都输出,不要忘记在每句后加break;

 public class Test {
public static void main(String[] args){
int a=1;
int i=0;
while(a==1){
a++;
System.out.println(a); //
}
do{
a++;
}while(a==1);
System.out.println(a); //
for( i=0;i<3;i++){
for(int j=0;j<=i;j++){
System.out.println(j); //0 01 012
}
}
System.out.println(i); //
}
}

可互相嵌套循环。for循环三个表达式均可省略,注意for循环表达式的执行顺序,表达式2,中间体,表达式3,再表达式2比较,...

对于break、continue、return:

break是跳出当层循环;continue是跳出当次循环,此层循环中continue后面的语句不再执行,回到循环起始处继续执行;return是使程序控制返回到调用该方法的地方,当执行main方法时,return可使程序执行返回到Java运行系统。

Java基础笔记(九)—— 流程控制的更多相关文章

  1. Java基础语法(4)-流程控制

    title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...

  2. Java基础语法与流程控制

    Java基础语法与流程控制 跟着狂神学Java的第二天O(∩_∩)O~,养成一个总结的习惯 志同道合的小伙伴可以一起学习狂神的视频 本节地址:https://www.kuangstudy.com/co ...

  3. Java基础语法02——流程控制

    流程控制:顺序结构.分支结构(if-else.switch-case).循环结构(for.while.do-while)

  4. Java基础之程序流程控制

    Java中的程序流程控制 Java中的程序流程分为三种结构:①顺序结构:②分支结构:③循环结构 一.顺序结构 Java中定义成员变量的时候,采用的是前向引用,也就是后面的变量可以引用之前定义好的变量. ...

  5. java 基础知识四 流程控制

    java   基础知识四 流程控制 Java流程控制包括顺序控制.条件控制和循环控制 顺序控制就是逐条执行 有if和switch两个分支 循环控制就是 又称为回路控制,根据循环初始条件和终结要求,执行 ...

  6. 【原】Java学习笔记005 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 程序的流程控制(流 ...

  7. 《Java基础知识》流程控制

    流程控制分类: 一.顺序结构如果没有流程控制(即没有分支结构和循环结构),Java方法里面的语句是一个顺序执行流,从上到下依次执行每条语句. 二.分支结构1.if语句if语句使用布尔表达式或者布尔值作 ...

  8. Java学习笔记五——流程控制

    分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...

  9. Java基础教程(9)--流程控制

    一.分支结构 1.if语句   if语句会与其后的第一条语句或代码块结合,且只有当判断条件为true时才执行语句或代码块.例如,自行车只有在运动的时候才可以减速,就像下面这样: void applyB ...

  10. 【原】Java学习笔记007 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // for循环 // ...

随机推荐

  1. CodeForces - 1019D(BZOJ3707圈地):Large Triangle (几何,找面积为S的三角形)

    题意:给定平面上N个点,问是否存在三角形,其面积为S. 思路:选择Y轴,枚举这个Y轴,面积大小只与|y-Y|有关,然后二分,具体的可以先去做BZOJ3707. 具体的: 1,先对点排序,X坐标为第一关 ...

  2. [转]JavaScript文件操作(2)-FileReader

    在上篇文章中,我介绍了在JavaScript操作文件,重点讲了如何取得File对象. 这些对象包含的文件的元数据在上传或者拖放到浏览器中时可以获取到.有了文件当然接下来就是读取文件了. FileRea ...

  3. UML Design Via Visual Studio-Sequence Diagram

    本文主要介绍在Visual Studio中设计时序图,内容如下: 何时使用时序图 时序图元素介绍 条件.循环在时序图中的使用 直接通过代码生成时序图 一.何时使用时序图 当要查看单个用例内若干对象的行 ...

  4. vs code 安装Scala

    首先本机要安装scala(官网肿么下不了,CSDN上面下的): 配置scala到环境变量PATH中(Scala的根目录): VS中安装以下扩展: 1. Scala: 2. Sbt: 3. Code R ...

  5. Hive安装配置要点

    官网下载安装包: 在Profile下面定义HIVE_HOME以及HADOOP_HOME,然后在PATH下面添加HOME/bin目录,用于在命令行直接敲beeline,hive即可执行命令: 需要在ha ...

  6. CF475D:CGCDSSQ

    浅谈\(RMQ\):https://www.cnblogs.com/AKMer/p/10128219.html 题目传送门:https://codeforces.com/problemset/prob ...

  7. asp.net定时任务

    我们这边使用的定时任务框架是Quartz.Net,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔一小时执行”.每天22点执行,每月18日下午执行等等各种定时任务. Quartz ...

  8. ubuntu dd烧录镜像文件

    df命令查看挂在的U盘和硬盘,ssd 右边可以看到路径 sudo dd if=cn_windows_10_multiple_editions_version_1703_updated_july_201 ...

  9. Oracle中生成UUID

    Oracle中生成跨系统的唯一识别符UUID非常方便,比生成序列还简单,直接用sys_guid()就行, 例如select sys_guid() from dual 会产生一个跟MAC地址.生成时间相 ...

  10. ORA-12504:tns:监听程序在 CONNECT_DATA中未获得SERVICE_NAME

    在VS2008中创建一个数据源时,提示以下错误 “ORA-12504:tns:监听程序在 CONNECT_DATA中未获得SERVICE_NAME” 本机安装ORACLE客户端,找出以下路径的文件D: ...