概述
上节课讲了运算符和类型转换,这节课主要来学学分支结构和循环
一个程序之所以有各种各样的功能,除了因为它可以做运算(包括算数运算和逻辑运算)以外,还在于它可以根据不同的条件进行判断来选择执行不同的代码,而要实现这样的功能,就必须用到分支结构和循环。
首先来说说程序流程控制结构:
-
顺序结构
-
程序从上到下逐行地执行,中间没有任何判断和跳转。
-
分支结构
-
根据条件,选择性地执行某段代码。
-
有if…else和switch两种分支语句。
-
循环结构
-
根据循环条件,重复性的执行某段代码。
-
有while、do…while、for三种循环语句。
-
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
顺序结构
Java中定义变量时采用合法的前向引用。如:
int num1 = 12;
int num2 = num1 + 2;
错误形式:
int num2 = num1 + 2;
int num1 = 12;
结论: java里的所有量(变量、常量)必须先声明后使用
分支语句1: if-else语句
if语句三种格式:
-
if(true)
{
//代码块;
}
解释:因为条件已经是true,所以会直接执行代码块
-
if(条件表达式)
{
//代码块1;
}
else
{
//代码块2;
}
解释: 如果条件表达式的值为true,则执行代码块1,否则执行代码块2
-
if(条件表达式1)
{
//代码块1;
}
else if (条件表达式2)
{
//代码块21;
}
……
else
{
//执行代码块2;
}
解释: 如果条件表达式1的值为true,则执行代码块1,否则如果条件表达式2的值
true,则执行代码块21,否则执行代码块2
注意:如果代码块内只有一条语句,则大括号可以省略,
所以格式3其实是格式2的变种
分支结构2:switch语句
switch(表达式)
{
case 常量1:
语句集1;
break;
case 常量2:
语句集2;
break;
… …
case 常量N:
语句集N;
break;
default:
语句集;
break;
}
表达式与哪个case后的值相等就执行哪个case后的语句集,break语句表示跳出switch结构,如果都不匹配则执行default后的语句集
注意:
-
switch(表达式)中表达式的返回值必须是下述几种类型之一:byte,short,char,int,枚举,String;(枚举和String以后讲)
-
case子句中的值必须是常量,且所有case子句中的值应是不同的;
-
default不是必须的
提示: 大家可以自己去试试如果不加break会是什么后果
demo:
给三个数排序
public static void main(String[] args) {
int a = 3, b = 2, c = 1;
int d = 0;
if (a>b)
{
d = a;
a = b;
b = d;
}
if (a > c)
{
d = a;
a = c;
c = d;
}
if (b > c)
{
d = b;
b = c;
c = d;
}
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
运行结果:
1
2
3
循环:
循环有三种: while,for,do-while
while 循环
while( 条件表达式)
{
循环体;
}
其中条件表达式的值必须是boolean类型
如果条件表达式的值为true,则循环执行循环体,直到条件不满足
如果循环体里只有一条语句,大括号可以省略
demo
计算 1+2+3+…+99+100
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i <= 100)
sum += i++;
System.out.println(sum);
}
运行结果:
5050
for循环
for(初始化语句;条件表达式;变更语句)
{
循环体
}
for循环最开始会执行初始化语句,然后根据条件表达式来判断是否执行循环体
每次执行完循环体后会去执行一次变更语句,然后再去根据条件表达式判断是否继续循环
demo
计算 1+2+3+…+99+100
public static void main(String[] args) {
int sum = 0;
for(int i =0; i <= 100; i++)
sum += i;
System.out.println(sum);
}
运行结果
5050
do-while循环
do{
循环体
}while(条件表达式);
和while类似,只不过会先执行一次循环体之后再去做判断是否继续执行
注意do-while语句结尾是有分号的
demo
计算 1+2+3+…+99+100
public static void main(String[] args) {
int i = 1;
int sum = 0;
do{
sum += i++;
}while(i <= 100);
System.out.println(sum);
}
continue语句:
只能存在于循环体中,作用: 提前结束(或者说跳过)本次循环
break 语句
可存在于循环体中, 作用: 跳出循环
最后,if-else 和三种循环是可以互相任意嵌套的
demo:
while和if嵌套版 1+2+3+…+99+100
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(true)
{
sum += i++;
if (i > 100)
break;
}
System.out.println(sum);
}
运行结果
5050
最后
以上就是英俊小天鹅为你收集整理的选择分支和循环的全部内容,希望文章能够帮你解决选择分支和循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复