Java 基本语法---流程控制
Java 基本语法---流程控制
0. 概述
三大流程控制语句:顺序、选择、循环。
选择结构:
- if 结构,if - else结构;
- 多重 if - else 语句 ;
- 嵌套 if - else 语句 ;
- switch 结构 ;
循环结构:
- while 循环, do - while 循环, for循环 ;
- Java增强for循环
- 循环嵌套
1. 选择结构
1.1 if 结构
一个if语句包含一个布尔表达式和一条或多条执行语句;
布尔表达式值为true,执行if 语句;
格式:
if(布尔表达式)
{
//布尔表达式值为true,执行语句;
}
1.2 if - else 结构
布尔表达式值为true,执行 if 语句;
布尔表达式值为false,执行 else 语句;
格式:
if(布尔表达式)
{
//布尔表达式值为true,执行语句;
}
else
{
//布尔表达式值为false,执行语句;
}
1.3 多重 if - else 结构
格式:
if(布尔表达式1)
{
//布尔表达式1值为true,执行语句;
}
else if(布尔表达式2)
{
//布尔表达式2值为true,执行语句;
}
else if(布尔表达式3)
{
//布尔表达式值3为true,执行语句;
}
else
{
//如果以上所有表达式的值都为false,则执行语句;
}
1.4 if 嵌套结构
格式:
if(布尔表达式1)
{
//布尔表达式1值为true,执行语句
if(布尔表达式2)
{
//布尔表达式2值为true,执行语句
}
}
1.5 switch结构
格式:
switch(常量值/expression)
{
case value1:
//执行语句
break; //可选
case value2:
//执行语句
break; //可选
......
default :
//执行语句
}
switch语句有如下规则:
- switch语句中的变量类型只能为byte、short、int或者char。
- switch语句可以拥有多个case语句。每个case后面跟一个要比较的值和冒号。
- case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
- 当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。
- 当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句不必须要包含break语句。如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。
- switch语句可以包含一个default分支,该分支必须是switch语句的最后一个分支。default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。
1.6 if 和 switch 区别
if 结构
- 判断条件为布尔类型(布尔表达式)
- 判断条件是一个范围
switch 结构
- 判断条件为常量值
1.7 案例1--输出九九乘法表
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; ++i)
{
for (int j = 1; j <= 9; j++)
{
if(j < i)
{
//输出的空格由"%d * %d = %2d "决定
System.out.print(" ");
}
else
{
System.out.printf("%d * %d = %2d ", i ,j , i*j);
}
}
System.out.println();
}
}
}
Output:
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9
2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18
3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27
4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36
5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45
6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54
7 * 7 = 49 7 * 8 = 56 7 * 9 = 63
8 * 8 = 64 8 * 9 = 72
9 * 9 = 81
1.8 案例2--输出某一年的某一天有多少天
public class Days {
public static void main(String[] args) {
int days = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入要确定的年份:");
int year = sc.nextInt();
System.out.println("请输入要确定的月份:");
int month = sc.nextInt();
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if((year %400 == 0) || (year % 100 != 0 && year %4 == 0))
{
days = 29;
break;
}
else
{
days = 28;
break;
}
default:
System.out.println("您输入的月份有误!");
System.exit(0);
}
System.out.printf("%4d 年 %2d 月 共有 %2d 天\n",year,month,days);
}
}
Output:
请输入要确定的年份:
2018
请输入要确定的月份:
02
2018 年 2 月 共有 28 天
请输入要确定的年份:
2008
请输入要确定的月份:
02
2008 年 2 月 共有 29 天
2.循环结构
2.1 while
循环
只要布尔表达式值为true
,就会执行循环内容。直到布尔表达式值为false
,退出循环;
while(布尔表达式)
{
//布尔表达式值为true,执行循环内容
}
2.2 do ... while
循环
只要布尔表达式值为true
,就会执行循环内容。直到布尔表达式值为false
,退出循环;和while
类似,不同的是do...while
语句至少会被执行一次;
do
{
//布尔表达式值为true,执行循环内容
}while(布尔表达式)
2.3 for
循环
for
循环执行次数在执行前确定。
for(初始化;布尔表达式;更新)
{
//执行代码
}
关于for
的几点说明:
- 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
- 然后,检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
- 执行一次循环后,更新循环控制变量。
- 再次检测布尔表达式。循环执行上面的过程。
2.4 Java增强for循环
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
for(声明语句:表达式)
{
//执行代码
}
-
2.5 案例1--循环输出26个英文小写字母,要求分两行输出
public class OutputLetters {
public static void main(String[] args) {
//循环输出26个英文小写字母,要求分两行输出
char ch = 'a';
int count = 0;//控制换行
while(ch <= 'z')
{
System.out.printf(ch + " ");
ch ++;
count ++;
if (count % 13 == 0)
{
System.out.println();
}
}
System.out.println();
ch = 'a';
count = 0;
for(count = 1, ch = 'a';ch <= 'z';ch ++,count ++)
{
System.out.printf(ch + " ");
if (count % 13 == 0)
{
System.out.println();
}
}
}
}
Output:
a b c d e f g h i j k l m
n o p q r s t u v w x y z
a b c d e f g h i j k l m
n o p q r s t u v w x y z
2.6 break
break
语句
break
语句可以结束当前循环的执行;- 执行完
break
语句,循环体中位于break
语句后面的语句就不会被执行; - 在多重循环嵌套中,
break
语句相当于向外跳一层;
2.7 continue
continue
语句:
continue
语句只能用在循环里;continue
语句可以结束当前循环的执行,但是要继续下一次循环的执行;
public class OutputLettersDemo {
public static void main(String[] args) {
//循环输出26个英文小写字母,要求分两行输出
//练习break,cotinue
char ch = 'a';
int count = 0;//控制换行
while(ch <= 'z')
{
if(ch == 'x')
break;
System.out.printf(ch + " ");
ch ++;
count ++;
if (count % 13 == 0)
{
System.out.println();
}
}
System.out.println();
ch = 'a';
count = 0;
for(count = 1, ch = 'a';ch <= 'z';ch ++,count ++)
{
if(ch == 'x')
continue;
System.out.printf(ch + " ");
if (count % 13 == 0)
{
System.out.println();
}
}
}
}
Output:
a b c d e f g h i j k l m
n o p q r s t u v w
a b c d e f g h i j k l m
n o p q r s t u v w y z
从上面的例子可以看出,break语句直接退出当层循环(到x直接退出,不再输出),而continue语句只是结束当前循环,并没有退出(只是没有输出x)。
Java 基本语法---流程控制的更多相关文章
- Java基础-程序流程控制第一弹(分支结构/选择结构)
Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...
- Java编程基础——流程控制
Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...
- Java中的流程控制(三)
关于Java中的流程控制 关于Java中的流程控制 4.do while语句 do while语句的功能和while语句差不多,只不过它是在执行完第一次循环后才检测条件表达式的值,这意味着包含在大括号 ...
- Java中的流程控制(二)
关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch( ...
- Java中的流程控制(一)
程序的流程控制(一) 关于Java程序的流程控制(一) 从结构化程序设计角度出发,程序有三种结构: 顺序结构 选择结构 循环结构 1.顺序结构 就是程序从上到下一行行执行,中间没有判断和跳转. 2.i ...
- Java基础-程序流程控制第二弹(循环结构)
Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...
- Java中的流程控制
1.Java中有几种流程控制?分别是什么? 答:有三种流程控制,分别是顺序流程,分支流程和循环流程 2.分支语句if/else有哪三种形式?分别如何使用? 答:if/if-else-/if-else ...
- Java基础语法—流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.所以,我们必须清楚每条语句的执行流程.而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能. 3.1 流程控制语句分类 ...
- 赶紧收藏!这些Java中的流程控制知识你都不知道,你凭什么涨薪?
Java的流程控制 基础阶段 目录: 用户交互Scanner 顺序结构 选择结构 循环结构 break & continue 练习题 1.Scanner对象 之前我们学的基本语法中并没有实现程 ...
随机推荐
- Linux命令(六) 查看文件 cat tac more less tail
如果要查看文件,使用 cat less tac tail 和 more 中的任意一个即可. 1.cat 使用 cat 命令查看文件时会显示整个文件的内容,注意cat只能查看文本文件的内容,如 ...
- IIS 下 搭建简单的FTP服务器
1. 修改用户策略, 创建简单用户密码 命令行输入 gpedit.msc 打开组策略 位置 2. 创建一个FTP使用的用户 net user zhaobsh Test6530 /add 3. 安装II ...
- Python开发【第七章】:面向对象进阶
1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类 ...
- 【题解】 [HNOI2009] 最小圈 (01分数规划,二分答案,负环)
题目背景 如果你能提供题面或者题意简述,请直接在讨论区发帖,感谢你的贡献. 题目描述 对于一张有向图,要你求图中最小圈的平均值最小是多少,即若一个圈经过k个节点,那么一个圈的平均值为圈上k条边权的和除 ...
- 首先java中集合类主要有两大分支
本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理. Java中的集合类包含的内容很多而且很重 ...
- Django中简单添加HTML、css、js等文件(非正规添加,适合小白)
Django中简单添加HTML.css.js等文件 首先申明下自己的环境, python版本3.65(亲测3.7版本有毒,没解决掉!) Django版本1.11.15(版本比较成熟,也可以用最新的版本 ...
- apigateway-kong(四)负载均衡理论及实现
负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用.最大化吞吐率.最小化响应时间.同时 ...
- hive安装笔记
http://note.youdao.com/noteshare?id=bfbe59aef4ef7c3502975d3d575239e1
- Tomcat权威指南-读书摘要系列9
从源代码组建Tomcat 安装Apache Ant ant是make的开放源代码的替代品,而且是专门为java程序语言设计. Ant的最初用途是作为Tomcat的组建工具: 之后,Ant成为Java软 ...
- windows下非管理员权限安装mysql
windows下,mysql有两种安装方式: 1.msi安装 2.zip安装 无论是哪种安装方式,都因为需要将mysql安装为一个服务,所以必须要以管理员权限安装. 因为公司的换了虚拟机,无法取得管理 ...