一、程序设计中的三种流程结构
1、顺序结构
从上到下逐行执行
代码
2、分支结构
根据条件判断选择性执行
代码
Java中2种分支结构:if-else和switch-case
3、循环结构
根据循环条件,重复执行
代码
Java中有4种循环结构:for、while、do-while、foreach
顺序结构不介绍了,之前写的代码都是顺序结构
二、分支结构
根据条件判断选择性执行代码,有if-else
和switch-case
两种分支语法。
2.1、if-else条件判断结构
1、格式1
if(条件成立){
则执行{}里面的代码
}
//示例
int flag = 6;
if(flag > 5){
System.out.println("flag = " + flag + ",大于5");//输出:flag = 6,大于5
}
2、格式2
if(条件成立){
则执行if里面的代码
}else{
if里面的条件不成立则执行else里面的代码
}
//示例
int flag = 6;
if(flag > 8){
System.out.println("Hello World");
}else{
System.out.println("flag = " + flag + ",小于8");//输出:flag = 6,小于8
}
3、格式3
if(条件1成立){
则执行if里面的代码
}else if(条件1不成立,条件2成立){
执行if里面的代码
}
else if(条件和2不成立,条件3成立){
执行if里面的代码
}else{
前面的条件都不成立,则执行这里的代码
}
//示例
int flag = 6;
if(flag == 8){
System.out.println("flag == 8");
}else if(flag == 5){
System.out.println("flag == 5");
}else if(flag == 6){
System.out.println("flag == 6");//输出:flag = 6
}else{
System.out.println("Hello World");
}
4、格式4:嵌套if-else
if(条件1成立){
if(条件2成立){
条件1和2都成立,则执行这里的代码
}
}else{
前面的条件不成立,则执行这里的代码
}
//示例
int flag = 6;
if(flag > 5){
if(flag == 6){
System.out.println("flag大于5,且等于" + flag);;//输出:flag大于5,且等于6
}
}else{
System.out.println("Hello World");
}
2.2、switch-case 语句
switch-case 语法格式:
switch(要判断的常量){
case 常量1 :
//语句
break; //可选
case 常量2 :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
case 语句中的值的数据类型,必须与switch括号()
中的数据类型相同,而且只能是常量或者字面常量。
说明:
1、字面量:是指由字母,数字等构成的字符串或者数值,它只能作为右值出现,所谓右值是指等号右边的值,如:int a=123这里的a为左值,123为右值。
2、常量:常量和变量都属于变量,只不过常量是赋过值后不能再改变的变量,而普通的变量可以再进行赋值操作。
3、字面常量:它是通过数据直接表示的,例如80,hello,100等这些直接的数据叫做字面常量。
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了
//示例
int i = 5;
switch(i){
case 0:
System.out.println("0");
break;
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 5:
System.out.println("5");//输出:5
break;
default:
System.out.println("default");
}
2.3、循环结构
初始化条件
循环条件
循环体
迭代更新部分
2.3.1、for循环
for(初始化1; 循环条件2; 更新4) {
//循环体3
}
运行顺序:
1->2->3->4->2->3->4.....2->3->4
1、for语句
//示例
for(int x = 0; x < 5; x++) {
System.out.println("Hello World");
}
//输出4次Hello World
Hello World
Hello World
Hello World
Hello World
2、foreach语句
int arr[] = { 5, 13, 96 }; // 一维整型数组
System.out.println("一维数组中的元素分别为:");
// x的类型与arr元素的类型相同。for循环依次取出arr中的值并赋给x
for (int x : arr) {
System.out.println(x);// 输出遍历出的元素值
}
//运行结果
一维数组中的元素分别为:
5
13
96
2.3.2、while循环
while( 循环条件 ) {
//循环体
}
//示例
int x=0;
while( x != 5 ) {
System.out.println("Hello World");
x++;
}
//输出4次Hello World
Hello World
Hello World
Hello World
Hello World
2.3.3、do-while循环
特别说明:do-while循环至少执行一次循环体内容
do {
//循环体
}while(循环条件);
//示例
int x=0;
do {
System.out.println("Hello World");
x++;
}while(x != 5);
//输出5次Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
三、break和continue关键字
3.1、break
break 主要用在循环语句或者 switch-case 语句中,用来跳出整个语句块。
//示例
for(int x = 0; x < 5; x++) {
if(x==2){
break;//循环所有结束,后面所有语句不执行
}
System.out.println("Hello World");
}
//输出2次Hello World,分別是x=0、1的時候,且当x=2的时候所有循环结束
Hello World
Hello World
3.2、continue
continue 只适用循环控制结构中。作用是让程序跳出本次循环,转到下一次循环。
//示例
for(int x = 0; x < 5; x++) {
if(x==2){
continue ;//跳过本次循环,本次循环后面语句不执行,进行下一次循环
}
System.out.println("Hello World");
}
//输出4次Hello World,分別是x=0、1、3、4的時候,且当x=2的时候跳过本次循环
Hello World
Hello World
Hello World
Hello World
附:无限循环
while(true)
或for(;;)