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. linux命令学习笔记(20):find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作, 这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是command ...

  2. stl_map.h

    stl_map.h // Filename: stl_map.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http://blo ...

  3. bzoj 3533: [Sdoi2014]向量集 线段树维护凸包

    题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=3533 题解: 首先我们把这些向量都平移到原点.这样我们就发现: 对于每次询问所得到的an ...

  4. 【转】LCS

    动态规划法 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题.简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加. 为了节 ...

  5. 【转】 Pro Android学习笔记(四四):Dialog(1):触发Dialog

    目录(?)[-] 创建dialog fragment Activity显示对话框 Android提供alert.prompt.pick-list,单选.多选,progress.time-picker和 ...

  6. 第二课 go语言的结构

    1 go 语言结构 package main import "fmt" func main() { /* 这是我的第一个简单的程序 */ fmt.Println("Hel ...

  7. 七 内置锁 wait notify notifyall; 显示锁 ReentrantLock

    Object中对内置锁进行操作的一些方法: Java内置锁通过synchronized关键字使用,使用其修饰方法或者代码块,就能保证方法或者代码块以同步方式执行. 内置锁使用起来非常方便,不需要显式的 ...

  8. shell监测磁盘使用并发送邮件

    linux sendEmail工具的安装使用    1.下载文件 #wget  http://files.cnblogs.com/files/sunziying/sendEmail-v1.56.tar ...

  9. PopupWindow --- 弹出底部窗体

    第一步 : 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...

  10. [poj3259]Wormholes(spfa判负环)

    题意:有向图判负环. 解题关键:spfa算法+hash判负圈. spfa判断负环:若一个点入队次数大于节点数,则存在负环.  两点间如果有最短路,那么每个结点最多经过一次,这条路不超过$n-1$条边. ...