Java学习笔记——Java基础语法(三、流程控制语句)

Java基础语法(三、流程控制语句)

流程控制语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的,所以,我们必须清楚每一条语句的执行流程。而且,很多时候要通过控制语句的执行顺序类实现我们想要的功能。

流程控制语句分类

  • 顺序结构
  • 选择结构
  • 循环结构

1、顺序结构

顺序结构是程序中最简单最基本的流程控制,通常情况下,代码都是由上往下、由左往右,依次执行。

2、选择结构

也叫分支结构,根据条件的不同选择执行不同的代码

if语句
格式一:

if(关系表达式){
语句体
}

  • 执行流程:
    • 首先计算关系表达式的值
    • 如果关系表达式的值为true就执行语句体
    • 如果关系表达式的值为false就不执行语句体
    • 继续向下执行后面的语句内容
格式二:

if(关系表达式){
语句体1;
}else{
语句体2;
}

  • 执行流程:
    • 首先计算关系表达式的值
    • 如果关系表达式的值为true就执行语句体1
    • 如果关系表达式的值为false就执行语句体2
    • 继续向下执行后面的语句

实例:键盘输入一个数,使用程序判断是奇数还是偶数。

import java.util.Scanner;
public class Test2{
    public static void main(String[]args){
        System.out.print("请输入一个整数:");
        Scanner input = new Scanner(System.in);
        int x = input.nextInt();
        if(x%2==0){
            System.out.println(x+"是一个偶数");
        }else{
            System.out.println(x+"是一个奇数");
        }
    }
}
格式三

if(关系表达式1){

​ 语句体1

}else if(关系表达式2){

​ 语句体2

}

else{

​ 语句体n+1;

}

  • 执行流程:
    • 首先计算关系表达式的值
    • 如果关系表达式1的值为true就执行语句体1
    • 如果关系表达式的值为false就执行关系表达式2
    • 关系表达式2的的值为true就执行语句体2
    • 关系表达式2的值为false就执行下一个else if的关系表达式3,以此类推…
    • 如果else if中的关系表达式都不成立就执行最后else的语句体
switch语句
switch语句结构

格式:

switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;

default:
语句体n+1;
break;
}

  • 执行流程
    • 首先计算出表达式的值(可以是byte、short、int、char、String、enum这几种类型)
    • 然后和case依次比较,一旦有对应的值,就会执行相应的语句,在执行过程中,遇到break就会结束
    • 最后如果所有case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束。
switch语句练习
  • 实例:根据输入的月份判断该月份属于那个季节
import java.util.Scanner;

public class Test3{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个月份:");
		int num = input.nextInt();
		switch(num){
			case 3:
			case 4:
			case 5:
				System.out.println("春");
				break;
			case 6:
			case 7:
			case 8:
				System.out.println("夏");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println("秋");
				break;
			case 12:
			case 1:
			case 2:
				System.out.println("冬");
				break;	
             default:
                 System.out.println("你输入的月份有误!");
                 break;
		}
	}
}

3、循环结构

循环语句可以在满足条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

for循环
格式:

for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}

  • 说明:
    • 初始化语句:用于循环开始时的起始状态
    • 条件判断语句:用于循环反复执行的条件
    • 循环体语句:用于循环反复执行的内容
    • 条件控制语句:用于每次循环执行中变换的内容
  • 执行流程
    • 1先执行初始化语句
    • 2执行判断语句,false循环结束,true继续执行
    • 3执行循环体语句
    • 4执行条件控制语句
    • 5再次从2执行,直到2的判断语句为false结束循环
练习:
  • 求1~100之间的偶数和,将最终结果输出
public class Test4 {
    public static void main(String[] args) {
    //定义一个变量,保存每次循环获得的偶数和
    int sum = 0;
    //i从1到100循环100次
    for(int i=1; i<=100; i++) {
        //判断i是否是偶数,如果是偶数加到sun变量中
        if(i%2 == 0) {
            sum += i;
        }
    }
    System.out.println("1-100之间的偶数和是:" + sum);
    }
}
while循环
结构:

初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}

  • 执行流程:
    • 1首先执行初始化语句
    • 2执行条件判断语句,false结束循环,true继续执行
    • 3执行循环体语句
    • 4执行条件控制语句
    • 5再次从2执行,直到2的判断语句为false结束循环
练习
  • 珠穆朗玛峰的高度为8844.43(8844430毫米)米,假如有一张足够大的纸,它的厚度是0.1毫米,求对折几次才能超过珠穆朗玛峰的高度?
public class Test5{
	public static void main(String[]args){
        //定义一个变量,用来计对折次数
		int num = 0;
		double zf = 8844430;
		double  paper= 0.1;
        //纸张厚度小于等于珠峰执行条件,当纸张厚度大于珠峰停止循环
		while(paper<=zf){
            //每次循环对折次数加一厚度加倍
			paper*=2;
			num++;
		}
		System.out.println("需要折叠"+num+"次");
		System.out.println("此时纸的高度为:"+paper);
	}
}

do…while循环
结构:

初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);

  • 执行流程:
    • 1执行初始化语句
    • 2执行循环体语句
    • 3执行条件控制语句
    • 4执行条件判断语句,false结束循环,true继续执行
    • 5再次从2执行,直到2的判断语句为false结束循环
实例

在控制台打印五次Hello World

public class Test6{
    public static void main(String[]args){
        int i=1;
        do{
            System.out.println("Hello World");
            i++;
        }while(i<=5);
    }
}

三种循环的区别

  • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行),do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
  • for循环和while循环的区别
    • for循环中,条件控制语句中的自增变量属于for循环结构中,for循环结束后,就不能使用了(能够提高内存的使用效率)
    • while循环中,条件控制语句中的自增变量不在while循环结构中,while循环结束后,变量还可以继续使用
  • 死循环的三种格式:
    • for(;;){}
    • while(true){}
    • do {} while(true);

跳转控制语句

  • break 跳出循环结构,结束循环
  • continue 跳出本次循环,执行下一次循环

嵌套循环

在循环中继续定义循环,实现更复杂的要求。do…while、while、for都能进行嵌套,它们相互之间也可以嵌套,最常见的for循环中嵌套for循环。

实例:

九九乘法表

public class Test7{
	public static void main(String[]args){
        //循环九次实现九行
		for(int i=1;i<=9;i++){
            //根据第几行实现共几列结果
			for(int j=1;j<=i;j++){
				System.out.print(j+"+"+i+"="+i*j+"\t");
			}
            //一行打印完毕,进行换行
			System.out.println();
		}
	}
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值