JAVA流程控制详解
1,什么是流程控制,流程控制的作用是什么?
程序的执行是多种多样的,JAVA程序的流程是自上而下,从左到右,但是当我们需要选择一些条件使程序进行有选择性(选择,跳转,重复等)的执行,为了方便控制程序的执行流程,需要使用路程控制语句。流程控制语句主要包括顺序语句,选择语句,循环语句以及跳转语句。
2,顺序结构
2.1 什么是顺序结构
顺序结构是程序控制中最基本的一种流程结构,即按照语句出现的顺序从上至下依次执行。
代码:
计算矩形的面积
public class Erea{
public static void mian(String[] args){
double x,y ,z;
Scanner scan=new Scanner(System.in);
x=scan.nextDouble();
y=scan.nextDouble();
z=x*y;
System.out.println("矩形的面积为:"+z);
}
}
3,选择结构
3,1什么是选择结构
选择结构是程序在处理时根据某个特定的条件选择其中的一个分支执行的一种流程结构,选择结构主要有单选泽,双选择,多选择。
3.2.1 if语句
语法:
if(条件){
语句序列
}
示例:
public class ifTest{
public static void main(Stirng[] args){
int x=5,y=8;
if(x>y){
y=x+y;
}
x=x+y;
System.out.println("x="+x);
System.out.println(" y="+y);
}
}
3.2.2 if …else语句
语法:
if(条件){
语句序列1
}
else{
语句序列2
}
示例:
public class Test{
public static void main(String[] args){
int x=15;
if(x>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
}
}
3.2.3 if语句嵌套
语法:
if(条件1){
…其他语句
if(条件2){
语句序列1;
}
else{
语句序列2;
}
}
示例1:
import java.util.*; //引用java.util的所有类
public class Test1{
public static void main(String[] args){
double x,y,z;
Scanner input=new Scanner(System.in);
System.out.println("请输入第一个数:");
x=input.nextDouble();
System.out.println("请输入第二个数: ");
y=input.nextDouble();
z=x/y;
if(y !=0) {
if ( y>0) {
System.out.println("结果为:"+z);
} else {
System.out.println("结果为:"+z);
}
}
}
}
示例2:
个人所得税采用超额累进税率的征收方法。设当前税率为:月收入低于3500部分不收税,高于3500低于5000部分征收3%,高于5000低于8000部分征收10%,高于8000征收15%。编写一个程序,计算应征收的个人所得税。
//程序分析:
//1,定义变量:月收入salary,个人所得税tax
//2,分段计算个人所得税
public class Test2{
public static void main(String[] args){
double salary,tax;
Scanner input=new Scanner(System.in);
System.out.println("请输入你的工资:");
salary=input.nextDouble();
if(salary<=3500){
tax=0;
}else if(salary<=5000){
tax=(salary-3500)*0.03;
}else if(salary<=8000){
tax=(salary-3500)*0.1+45;
}else{
tax=(salary-8000)*0.15+345;
}
System.out.println("应交个人所得税:"+tax);
}
}
从上面的例题大家可以看出if…else虽然能够解决多路分支的问题但使用起来不是很方便,所以我们选择下面的switch开关语句来解决多路分支问题。
3.2.4switch语句
语法:
switch(表达式){
case常量1:
语句序列1;
break;
case常量2:
语句序列2;
break;
case常量n:
语句序列n;
break;
default:
语句序列n+1;
break;
}
示例:
供电公司阶梯收取费用,在100度以下的普通用户每度电收0.5元,超过100度低于300度,超过的部分每度需要缴纳0.8元的电费;超过300度,超过的部分每度支付1.2元。
public class Test4{
public static void main(Stirng[] args){
int n;
double fare;
Scanner scan=new Scanner(System.in);
System.out.println("请输入使用的电的度数:");
n=scan.nextInt();
switch (n/100){
case 0:
fare=n*0.5;break;
case 1:
case 2:
fare=(n-100)*0.8+50;break;
default:
fare=(n-300)*1.2+210;break;
}
System.out.println("需要缴纳的费用:"+fare+"元");
}
}
注意: switch后面的括号中的表达式的数据类型不可以是double,float,long
case后面必须为常量表达式
case与常量表达式之间必须有一个空格或Tab键间隔
4,循环结构
4.1什么是循环结构
循环结构就是在满足一定条件的情况下反复执行某一个操作。主要包括while循环,do…while循环和for循环。
循环四要素:
循环初始化:一条或多条语句,这些语句完成一些初始化操作,让循环开始执行
循环继续条件:控制循环是否继续或结束的条件
循环体:需要被循环执行的代码
循环步长(间距,周期):当前循环和下一次循环之间的差量
4.2.1while循环语句
语法:
初始化
while(条件){
语句序列
}
切记:while循环中一定要把初始化放在循环之外,否则每当执行一次循环,就会初始化一个变量,占用空间。
while循环和for循环类似;可以直接由for循环改造而来,例如:
示例:
public class Test5{
public static void main(String[] args) {
int a=5,b=8;
while(a<b){
a++;
}
System.out.println(a);
}
}
4.2.2 do…while循环
此循环与前边两者的循环有一个很大的不同循环体在判断循环条件之前无条件执行一次
语法:
初始化
do{循环体;循环步长}
while(循环判断条件);
执行过程:
从初始化开始,顺序执行,在while的判断条件中进行判断选择,(如果结果为true,继续执行循环体,否则跳出循环)
示例:
class Test8{
public static void main(String[] args){
int i=1;
do{
i+=1;
}
while(i<0);
System.out.println(i);
}
}
4.2.3 for循环
语法:
for(表达式1;表达式2;表达式3){
语句序列;
}
for循环的执行:
1.从初始化开始执行
2.执行循环条件(如果循环条件判断为true,则执行循环体,否则跳出循环)
3.执行循环体
4.执行循环步长(为了改变循环条件,使其能在某种情况下跳出循环,而不是执行死循环)
适用场合
1.程序中同一操作需要执行n(n>1)多次
2.明确知道循环的结束条件。
示例:
class Test6{
public static void main(String[] args){
int sum=0;
for(int i=0;i<=100;i++){
sum+=i;
}
System.out.println(sum);
}
}
到这里就告一段落了,如有不准确的地方请指教。