程序流程控制:
(1) 顺序结构:程序从上到下一行一行执行,直到程序结束。
(2) 判断结构:
if语句:
流程说明:①通过if...elseif...else决定程序流程。
②如果if中的条件满足则执行其中语句,if未满足则继续判断else if,如果满足则执行,不满足继续判断下一个else if,如果所有都不满足,则执行else.
格式:
格式一:
if(条件表达式) //当满嘴条件判断,则执大括号中的语句,如果不满足则跳过大括号中的语句。
{
执行语句;
}
注:如果if只控制一条语句则可以省略大括号。
格式二:
if(条件表达式)//当满嘴条件判断,则执大括号中的语句,如果不满足则跳过大括号中的语句。
{
执行语句;
}
else
{
执行语句;
}
注:格式二这类语句if else结构简写格式:变量 = (条件表达式)?表达式1:表达式2
好处:可以简化if else代码。
弊端:因为是一个运算符,所以运算完必须要有一个结果(if..else..可以没有结果结果)。
格式三:
if(条件表达式)//当满嘴条件判断,则执大括号中的语句,如果不满足则跳过大括号中的语句。
{
执行语句;
}
else if
{
执行语句;
}
----
else
{
执行语句;
}
注:如格式三不管代码有多长都属于一个语句。
代码诠释
class IfDemo1
{
public static void main(String[] args)
{
//需求1:根据用户定义的数值不同。打印对应的星期英文。
//需求2:根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
int x = 4;
if(x==3 || x==4 || x==5)
System.out.println(x+"春季");
else if(x==6 || x==7 || x==8)
System.out.println(x+"夏季");
else if(x==9 || x==10 || x==11)
System.out.println(x+"秋季");
else if(x==12 || x==1 || x==2)
System.out.println(x+"冬季");
else
System.out.println(x+"月份不存在");
}
}
/*
运行结果
===============================
优秀
===============================
*/
(3) 选择结构:
switch语句:代码诠释(SwitchDemo)
① 通过switch...case...default语句控制程序流程。
② 根据switch后括号中的值判断运行哪一个case,这个值可以是byte、short、char、int
③ default语句是可选的,如果所有case都不满足,则会执行default。
④ 一旦匹配到一个case,程序就会从这个case向下执行,执行完一个case之后不会跳过其他的case,如需跳过请使用break。
⑤ 结束switch语句的两种情况:遇到break,执行到switch语句结束。
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值 2:
执行语句;
Break;
……
Default:
执行语句;
break;
}
if语句和switch语句的选择:
如果判断的具体数值不多,而是符合byte short int char这四种类型。
虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
代码诠释(SwitchDemo)
/*
需求:switch语句的练习
根据用户输入的字符去执行相应的方法
*/class SwitchDemo
{
public static void main(String[] args)
{
int a = 8;
int b = 2;
//被操作的数据
char x = '+'; //x的值可以是byte、short、char、int
switch (x)//根据x的值进行相应的操作。先从上到下的进行x的匹配,如果没有才执行default。
{
case '+':
System.out.println("a+b = "+(a+b));
break;
case '-':
System.out.println("a-b = "+(a-b));
break;
case '*':
System.out.println("a*b = "+(a*b));
break;
case '/':
System.out.println("a\b = "+(a/b));
break;
default:
System.out.println("输入非法");
}
}
}
/*
运行结果
==================================
a+b = 10
==================================
*/
(4) 循环结构:代表语句:while, do while, for
① while语句格式:
特点:
先判断while中的表达式结果是否为true,true则执行循环体,执行结束之后再次判断,如果表达式结果为false则跳出循环
格式:
while(条件表达式)
{
执行语句;
}
(代码诠释)WhileDemo
/*
目的:通过这个程序理解whlie循环的用法
需求:运算从1加到100
*/
class WhileDemo
{
public static void main(String[] args)
{
int x = 1;
int sum = 0;//在循环外要打印sum的值所以,不能把sum定义在while循环里面
while(x<=100)
{
sum = sum + x;
++x;
}
System.out.println("sum = :"+sum);
/*
while:先判断条件,只有条件满足才执行循环体。
*/
}
}
/*
运行结果
====================================
sum = :5050
====================================
*/
② dowhile语句:
特点:
先执行一次循环体,然后判断while中的表达式,如果是true继续执行,如果是false则跳出循环。
格式:
do
{
执行语句;
}while(条件表达式);
特点:dowhile特点是条件无论是否满足,循环体至少被执行一次。
代码诠释(DoWhileDemo)
/*
目的:通过这个程序理解dowhlie循环的用法
需求:运算从1加到100
*/
class DoWhileDemo
{
public static void main(String[] args)
{
int x = 1;
int sum = 0;
do
{
sum = sum + x;
++x;
}while(x<=100);
System.out.println("sum = :"+sum);
/*
do while: 先执行循环体,在判断条件,条件满足,再继续执行循环体。
*/
}
}
/*
运行结果
=====================================
sum = :5050
=====================================
*/
③ for循环:for(初始化表达式①;循环条件表达式②;循环后的操作表达式③)
{
循环内容④;
}
特点:
① 语句1:这条语句会在整个循环开始之前执行,且仅运行一次,不参与循环。
② 语句2:必须是一个返回boolean值的表达式,如果写了这个语句那么每次循环开始之前会判断,true则执行循环,false则不执行。没写则直接执行。
③ 语句3:这条语句在每次循环体运行结束之后执行。
④ 在for中定义的局部变量,当for循环结束后,变量消失。
⑤ 当表达式多的时候,用逗号分割开就好了。
⑥ 执行顺序:初始化表达式①(只在循环开始执行一次)——>循环条件表达式②——>执行语句④——>循环后的操作表达式③——>循环条件表达式②——>执行语句④——>循环后的操作表达式③……
格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
代码诠释(ForDemo)
/*
目的:通过这个程序理解for循环的用法
需求:运算从1加到100
*/
class ForDemo
{
public static void main(String[] args)
{
int sum = 0;
for (int x=1; x<=100;++x )
{
sum = sum +x;
}
System.out.println("sum = "+sum);
}
}
/*
1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。
for语句执行完毕。该变量在内存中被释放。
2,for和while可以进行互换。如果需要定义循环增量。用for更为合适。
总结:
什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
*/
/*
运行结果
=============================================
sum = 5050
=============================================
*/
for语句的嵌套:
在for循环的执行语句上也有一个循环称为内循环。内循环相当于外循环的执行语句。执行和for循环类似,只是当外循环满足条件后,内循环要一直执行到循环结束,才会进行第二次外循环的判断。
代码诠释ForForDemo
/*
for嵌套的练习:
需求:通过for嵌套打印出以下图形
*****
****
***
**
*
步骤:1、先定义一个外循环来定义循环的行数
2、定义一个内循环来实现*的具体打印。
*/
class ForForDemo
{
public static void main(String[] args)
{
for (int x=0; x<5 ;x++ )//x<5:因为外循环控制行数。一共5行。
{
for (int y=x; y<5 ;y++)//定义内循环的次数
{
System.out.print("*");
}
System.out.println();//换行
}
}
}
/*
运行结果
================================================
*****
****
***
**
*
================================================
*/
(五)、break语句和continue语句
break:跳出
① 应用于选择结构和循环结构,结束循环。
② break和continue单独存在时,下面可以有任何语句。因为都执行不到。
continue:跳过本次循环
① 应用于循环结构
② continue:只能作用于循环结构。继续循环。特点:结束本次循环,继续下一次循环。
主:①,这两个语句离开应用范围,存在是没有意义的。
②这个两个语句单独存在下面都不可以有语句,因为执行不到
③continue语句是结束本次循环继续下次循环。
④标号的出现,可以让这两个语句作用于指定的范围。