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. 重写ScrollView实现两个ScrollView的同步滚动显示

    1.背景介绍 最近项目用到两个ScrollView的同步显示,即拖动左边的ScrollView滚动的同时,实现右边的ScrollView同步滚动.此种情形常用在复杂界面布局中,比如左边的ScrollV ...

  2. C++函数重载详解

    我们在开瓶瓶罐罐的时候,经常会遭遇因各种瓶口规格不同而找不到合适的工具的尴尬.所以有时候就为了开个瓶,家里要备多种规格的开瓶器.同样是开个瓶子嘛,何必这么麻烦?于是有人发明了多功能开瓶器,不管啤酒瓶汽 ...

  3. SHOI2016 随机序列

    给你一个数列,在相邻两个数之间插入加号,减号或乘号 每次支持单点修改,求所有这样可以得到的表达式之和,膜1e9 + 7 sol: 我是个 sb ... 可以发现,如果某位置出现了加号,后面一定有一个减 ...

  4. java枚举学习enum

    java 1.5以后才出现enum的关键字 所有的enum类都继承自Enum类,所以enum类无法再继承其他的类,可以实现接口,枚举类出了不能被继承其余的与普通类的特性一致, 枚举类的构造函数只能自己 ...

  5. Maven(2)-坐标和依赖

    本文简要介绍Maven里面的坐标(coodinate)以及maven依赖管理(Dependency) 一.坐标 先来个截图: 在上图peoject栏目有groupId,artifactId,versi ...

  6. Maven运行JUnit测试(http://www.360doc.com/content/13/0927/15/7304817_317455642.shtml)

    Maven单元测试 分类: maven 2012-05-09 15:17 1986人阅读 评论(1) 收藏 举报 maven测试junit单元测试javarandom   目录(?)[-] maven ...

  7. Apache+OpenSSL实现证书服务器提供HTTPS

    通过 Linux+Apache+OpenSSL 实现 SSL ( Secure Socket Layer )证书服务器,提供安全的 HTTPS ( Hypertext Transfer Protoco ...

  8. css基础知识一

    1.CSS (Cascding Style Sheet)层叠样式表 级联样式表 样式表 2.CSS作用: 修改页面中元素的显示样式 能够实现内容与表现的分离 提高代码的可重用性和可维护性 3.导入CS ...

  9. Microsoft Data Access Components 2.8

    今天在安装金蝶系统的时候,发现这个组件无法安装上 此组件如果跳过,不安装,将会导致金蝶安装完毕后,提醒无法创建账套,也就是金蝶软件无法连接到数据库上,所以此步为必须. 于是乎,网上找这个组件,下载地址 ...

  10. centos7安装etcd

    http://blog.csdn.net/dream_broken/article/details/52671344