java中的流程控制语句总结
程序的结构分类:
顺序结构:按照写代码的顺序 一次执行
选择结构:根据条件的不同有选择的执行不同的代码
循环结构:在一定条件下 反复执行某一片代码
选择结构:
也叫分支结构 根据条件的不同,有选择的执行某一片代码 ,Java提供了两种 if结构 switch结构
if分为三种格式 :
if的第一种格式
if(条件){
语句块
}
执行流程:
先判断条件, 如果为真 则语句块执行, 否则 语句块不执行
代码演示:
public static void main(String[] args) {
System.out.println("开始");
// 定义两个变量
int a = 10;
int b = 20;
if (a == b) {
System.out.println("a等于b");
}
int c = 10;
if (a == c) {
System.out.println("a等于c");
}
System.out.println("结束");
}
if的第二种格式:
if(条件){
语句块 1
}else{
语句块2
}
执行流程:
先判断条件的真假, 如果为真 则只执行语句块1, 否则, 只执行语句块2
代码演示:
public static void main(String[] args) {
System.out.println("开始");
// 判断给定的数据是奇数还是偶数
// 定义变量
int a = 100;
// 给a重新赋值
a = 99;
if (a % 2 == 0) {
System.out.println("a是偶数");
} else {
System.out.println("a是奇数");
}
System.out.println("结束");
}
if语句的第三种格式:
if(条件1){
语句块1
}else if(条件2){
语句块2
}else if(条件3){
语句块3
}
...
else if(条件n){
语句块n
}else{
语句块n+1
}
执行流程:
先判断条件1 ,如果为真 则执行语句块1,执行完毕,跳出整个if结构执行if下面的语句, 否则判断条件2,
如果条件2为真,则执行语句块2,执行完毕跳出
整个if结构执行if下面的语句, 如果条件2也为假,则判断条件3 ,如果为真... 如果判断到条件n都为假,
则执行else中的语句块n+1
代码演示:
x和y的关系满足如下:
x>=3 y = 2x + 1;
-1<=x<3 y = 2x;
x<=-1 y = 2x – 1;
根据给定的x的值,计算出y的值并输出。
public static void main(String[] args) {
int x = 5;
int y;
if (x >= 3) {
y = 2 * x + 1;
} else if (x >= -1 && x < 3) {
y = 2 * x;
} else {
y = 2 * x - 1;
}
System.out.println("y的值是:"+y);
}
选择结构switch
语法结构
switch(表达式){
case 目标值1:
语句块1
break;
case 目标值2:
语句块2
break;
case 目标值3:
语句块3
break;
...
case 目标值n:
语句块n+1
break;
default:
语句块n+1
break;
}
执行流程:
先计算表达式的结果 A ,使用A顺次的与对应的目标值进行比较,一旦发现有相等的目标值, 就停止比较,
执行对应的语句块, 再执行break跳出整个switch结构, 如果从上往下比较都没有目标值与A相等则执行
语句块n+1 结束switch
要求:
表达式: 表达式的结果,在JDK1.1~1.4时代 表达式的结果的数据类型 只能是 char byte short int
在JDK1.5~1.6时代 表达式的结果的数据类型 只能是 char byte short int enum(枚举)
在JDK1.7+时代 表达式的结果的数据类型 只能是 char byte short int enum(枚举) ,String(字符串)
目标值:
目标值的数据类型 与表达式结果的数据类型要匹配
目标值 不能重复
代码演示:
根据键盘录入的数值1、2、3...7输出对应的星期一、星期二、星期三...星期日
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个数字(1-7):");
int weekday = sc.nextInt();
//switch语句实现选择
switch(weekday) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你输入的数字有误");
break;
}
}
循环结构:
同一件事反复做 , 反复执行同一片代码
循环的构成:
初始化语句
循环出口(条件)
循环体
循环增量
有三种 循环结构:
for 循环 while 循环 do...while循环
for循环:
语法格式:
for(初始化语句;条件;步进表达式){
循环体
}
执行流程:
第一步: 初始化语句
第二步: 判断条件, 如果条件为真 则进入第三步 ,条件为假则进入第五步
第三步: 执行循环体
第四步: 执行步进表达式 进入第二步
第五步: 结束循环
代码演示:
统计“水仙花数”共有多少个
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
public static void main(String[] args) {
//1.定义一个统计变量,初始值为0
int count = 0;
//2.使用for循环获取所有的三位数
for(int x=100; x<1000; x++) {
//3.拆分三位数的百位,十位,个位
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
//4.利用公式判断这个三位数是否为水仙花数,如果是,统计变量++
if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
count++;
}
}
//5.循环结束之后,打印统计结果
System.out.println("水仙花数共有:"+count+"个");
}
while 循环:
语法结构:
初始化语句
while(条件){
循环体
步进语句
}
执行流程:
第一步: 初始化语句
第二步: 判断条件, 如果条件为真, 则进入第三步,如果条件为假, 则进入第五步
第三步: 执行循环体
第四步: 执行步进语句, 再进入第二步
第五步: 结束循环
do ... while循环
语法格式:
初始化语句
do{
循环体
步进语句
}while(条件)
执行流程:
第一步: 初始化语句
第二步: 执行循环体
第三步: 执行步进语句
第四步: 判断条件,如果条件为真,进入第二步, 否则进入第五步
第五步: 结束循环
三种循环的区别:
虽然可以完成同样的功能,但是还是有小区别:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
for循环语句和while循环语句的小区别:
使用区别:控制条件语句所控制的那个变量,在for循环结束后,
就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,
就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,
能够提高内存的使用效率。
循环使用推荐for -- while -- do..while
跳转语句可以控制循环的执行:
有两种
break : 在循环中使用的时候 表示结束当前循环
在switch语句中使用 表示跳出当前的switch结构
continue: 在循环中使用, 表示结束本次循环 进行下一次循环
跳转语句 脱离循环没有意义
此篇就到这里了 本人将持续总结 从Java基础开始 一直到整个javaWeb开发所需的所有技术 都会进行总结 ,感兴趣的园友们可以持续关注 一起学习!!!
java中的流程控制语句总结的更多相关文章
- java基础3_流程控制语句
一 条件判断 1. 条件运算符(三元表达式) ,其形式为: type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4; 2. 轻量级的文本编辑器:Ultr ...
- JAVA 1.7 流程控制语句 续
1. Java中的循环控制语句一共有3种,分别是while,do… while以及for循环.2. while循环,形式为:while(布尔表达式){//待执行的代码}3. do…while循环,新式 ...
- Java中的流程控制(三)
关于Java中的流程控制 关于Java中的流程控制 4.do while语句 do while语句的功能和while语句差不多,只不过它是在执行完第一次循环后才检测条件表达式的值,这意味着包含在大括号 ...
- Mysq中的流程控制语句的用法
这篇博客主要是总结一下Mysq中的流程控制语句的用法,主要是:CASE,IF,IFNULL,NULLIF 1.case CASE value WHEN [compare-value] THEN res ...
- Java基础学习-流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...
- java基础(5):流程控制语句(switch)、数组
1. 流程控制语句(续) 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码.例如,在程序 ...
- IT兄弟连 Java语法教程 流程控制语句 分支结构语句5
5 switch-case条件语句 Java中的第二种分支控制语句时switch语句,switch语句提供了多路支持,因此可以使程序在多个选项中进行选择.尽管一系列嵌套if语句可以执行多路测试,然而 ...
- Java基础语法—流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.所以,我们必须清楚每条语句的执行流程.而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能. 3.1 流程控制语句分类 ...
- JAVA 1.6 流程控制语句
1. 条件运算符(三元表达式),其形式为:type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4;2. 轻量级的文本编辑器:UltraEdit.Edit ...
随机推荐
- 【转载】stm32的GPIO八种工作模式
一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定. 推挽电路是两个参数 ...
- 用 Python 和 Stanford CoreNLP 进行中文自然语言处理
实验环境:Windows 7 / Python 3.6.1 / CoreNLP 3.7.0 一.下载 CoreNLP 在 Stanford NLP 官网 下载最新的模型文件: CoreNLP 完整包 ...
- ArrayList 遍历
1.迭代器遍历 package sourceCode.ArrayList; import java.util.ArrayList; import java.util.Iterator; import ...
- OpenCV 玩九宫格数独(二):knn 数字识别
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:刘潇龙 前言 首先需要说明,这里所说的数字识别不是手写数字识别! 但凡对机器学习有所了解的人,相信看到数 ...
- Angular2.js——表单(下)
这部分是接表单上部分的内容,主要内容有: 1.添加自定义的CSS来提供视觉反馈: 2.显示和隐藏有效性验证的错误信息: 3.使用ngSubmit处理表单提交: 4.禁用表单提交按钮. 添加自定义的CS ...
- bzoj1898 [Zjoi2005]沼泽鳄鱼
Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎然,引来不少游客.为了让游玩更有情趣,人们在池塘的中央建设了几 ...
- 【转】10 条提升 Android 性能的建议
每个人都知道一个 App 的成功,与这个 App 的性能体验有着很密切的关系.但是如何让你的 App 拥有极致性能体验呢?在 DroidCon NYC 2015 的这个分享里,Boris Farber ...
- R语言面向对象编程:S3和R6
一.基于S3的面向对象编程 基于S3的面向对象编程是一种基于泛型函数(generic function)的实现方式. 1.S3函数的创建 S3对象组成:generic(generic FUN)+met ...
- Excel表格导入Mysql数据库,一行存入多条数据的前后台完整实现思路(使用mybatis框架)
现在有一张Excel表格: 存入数据库时需要这样存放: 现在需要将Excel表格做处理,将每一行拆分成多条数据存入数据库. 1.首先在前台jsp页面画一个按钮:,加入点击事件: <td styl ...
- JS执行事件
先贴出几个名词: 同步任务: 在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务 异步任务: 不进入主线程,而进入"任务队列"的任务,只有任务队列通知主线程, ...