Java学习笔记------流程控制及break、return、continue区别

本文详细介绍了Java的流程控制结构,包括顺序结构、分支结构(if、switch)和循环结构(while、do while、for)。讲解了if条件语句的多种形式,switch的用法与注意事项,以及三种循环语句的特点和应用场景。同时,对比分析了break、return和continue的区别,帮助读者理解如何在不同场景中合理使用它们。
摘要由CSDN通过智能技术生成

1、顺序结构

任何语言程序中最常见的就是顺序结构,就是自上到下逐行的进行执行,中间没有任何跳转和判断。


2、分支结构

Java 提供两种常见的分支控制结构,if语句 和 switch语句,其中if语句是使用布尔表达式或者布尔值来作为分支机构条件来进行控制,而switch语句则用于多个整型值进行匹配来进行控制。

2.1、if条件语句

2.1.1、if
if(逻辑表达式){
	代码块;
}
2.1.2、if else
if(逻辑表达式){
	代码块1;
}else{
	代码块2;
}
2.1.3 、if else if
if(逻辑表达式1){
	代码块1;
}else if(逻辑表达式2){
	代码块2;
}else{
	代码块3
}
2.1.4、总结
  • if之后的括号里只能是一个逻辑表达式,即这个表达式的值只能返回true或false。
  • 如果if、else if、else后只有一条语句,后面的花括号可以省略。(Tips:通常不建议省略,保留会增加程序的可读性,并且会减少错误的发生!)
  • 当使用if…else语句进行流程控制是,一定不要忽略else所带的隐含条件。
2.1.5、小例题,判断一个三位数是不是水仙花数
    //一个三位数,它各个位的三次方之和等于这个数本身的话,则这个数就叫做水仙花数
    //从键盘接收一个数,判断这个数是不是水仙花数。
import java.util.Scanner;//导包
class IfTest{
    public static void main(String[] args) {
        //创建Scanner对象
        Scanner input = new Scanner(System.in);
        //提示
        System.out.println("请输入一个三位的整数:");
        //接收键盘输入
        int num = input.nextInt();
        //判断是否为三位数
        if (num >= 100 && num <= 999) {
            int numBw = num / 100, 
                    numSw=num / 10 % 10,
                    numGw = num % 10;
            //Math.pow(a,b);求a的b次方
            int numAdd = (int) (Math.pow(numBw, 3) + 
                    Math.pow(numSw,3) + 
                    Math.pow(numGw, 3));
            if (num == numAdd) {
                System.out.println(num + "是水仙花数。");
            } else {
                System.out.println(num + "是不是水仙花数。");
            }
        } else {
            System.out.println("输入的数不是一个三位的整数!");
        }
    }
}

2.2、switch

switch是由一个表达式和多个case标签组成的,与if不同的是,switch语句后面控制的表达式类型只能是byte、short、int、char四种整是类型、枚举类型和java.lang.String(Java7之后才支持),不能是boolean类型。

2.2.1、switch表达式
switch(表达式){
	case 条件1{
		代码块;
		break;}
	case 条件2{
		代码块;
		break;}
		………… 
	case 条件N:{
		代码块;
		break;}
	default:{
		代码块;}
2.2.2、总结
  1. 做等值操作时,可以选择switch case完成。
  2. switch分支语句,先对表达式求值,然后依次匹配条件1、条件2、…、条件N,遇到匹配的的值时,执行代码块;如都不匹配,则执行default标签后的代码块。
  3. switch中各case后的花括号可以省略,且case可以编写任意多个。
  4. case和default后的break是可有可无的,如果遇到break,则结束整个switch case;如果没有break,则会从第一个匹配的case或default一直向下执行语句,其实也就构成穿透,因此要根据合适位置写break。
  5. case是可以进行合并的。
  6. Java7增强了switch的功能,允许switch控制的表达式java.lang.String类型的变量或表达式,不能是StringBuffer或者StringBuilder这两种字符串类型。例:
   public static void main(String[] args) {
        String sex ="女";
        switch (sex){
            case "男":
                System.out.println("男孩");
                break;
            case "女":
                System.out.println("女孩");
                break; // 输出结果为:女孩
        }
    }
2.2.3、小例题
import java.util.*;
class SwitchTest{
	public static void main(String[] args) {
	//根据考试成绩获得奖励,如果考100分母亲给她买电脑,
	//如果考90分以上母亲给她买台平板,
	//如果考60分以上母亲给她买部手机,如果考60分以下没有任何礼物。
		Scanner input = new Scanner(System.in);
		System.out.println("请输入成绩:");
		int score = input.nextInt();
		if (score >= 0 && score <= 100) {
			switch(score / 10) {
				case 10:
					System.out.println("买电脑");
					break;
				case 9:
					System.out.println("买平板");
					break;
				case 8:
				case 7:
				case 6:
					System.out.println("买手机");
					break;
				default:
					System.out.println("没有任何奖励");
			}
		}else{
			System.out.println("请输入正确的成绩!");
		}
	}
}

3、循环结构

循环语句可以在满足循环条件的情况下,反复的执行一段代码,被反复执行的代码块被称为循环体。当条件为假时,结束循环,否则,循环会一直执行下去。
循环语句可能包括以下四部分:
1.初始化语句:一条或多条语句,用于完成一些初始化工作,在循环之前执行。
2.循环条件:Boolean表达式,用于判断是否执行循环体。
3.循环体:如果条件为真,则此代码块会一直循环执行。
4.循环迭代语句:在一次循环体执行完后,对循环条件求值前执行,用于控制循环中的变量,使循环在合适条件下结束

3.1、while

3.1.1、while表达式

while 是先进行条件判断,若条件为真则执行循环体。

例如一个简单的小循环:

//初始化语句;
int num = 10;
//while(循环条件)
while(num <=10 && num > 0){
	//循环体;
	System.out.println(num);
	//循环迭代语句;
	num--;
}
System.out.println("循环结束!");

3.2、do while

do while和while的区别就在于,do while是先执行循环体,再进行判断,如果条件为真,则执行下一次循环,否则终止循环。

3.2.1、do while表达式
//初始化语句
int i = 10;
do(
	//循环体
	System.out.println(i)//循环迭代语句
	i--;
 //while(循环条件);  <-----注意:以英文下的分号结尾。
}while(i <=10 && i > 0);
System.out.println("循环结束!");

即使循环开始的条件为假,do while 的循环体也至少进行一次循环。
因为do while 是先执行循环体再进行条件判断!

3.3、for

3.3.1、for表达式
//for(初始化语句;循环条件;循环迭代语句)
for(int i = 1; i < 10 ; i++){
	//循环体
	System.out.println(i);
}
System.out.println("循环结束");
3.3.2、for注意事项
  1. for循环更加简洁,大部分情况下可以代替while语句和do while语句。
  2. for循环允许同时指定多个初始化语句(必须是相同数据类型),循环条件也可以是一个包含逻辑运算符的表达式。例:
for(int i= 0, int j = 0; i >= 0 && j < 5;i++ )
	System.out.println(i);
	System.out.println(j);
}
  1. 建议不要在循环体内修改循环变量(如例中i++),否则会增加程序程序出错的可能性,如真需要修改,建议定义一个临时变量,将循环变量的值赋给临时变量,然后对临时变量进行修改。例:
int temp = 0;
for(int i= 0; i >= 0 && i < 5 ; i++ )
	System.out.println(i);
	//定义一个临时变量
	temp = i ;
	temp *= 0.1;
	System.out.println(temp);
}

3.4、嵌套循环

把一个循环放到另一个循环体内,那么就可以形成嵌套循环。嵌套循环外层的叫外层循环,内层的叫内层循环,各种类型的循环都可以是外层/内层循环。
当嵌套循环开始执行时,内层循环其实就是外层循环的循环体,当内层循环为false时,才会跳出内循环,结束外层循环的当次循环,开始下一次循环。例如:

for(;;){//外层循环
	for(;;){//内侧循环
		//循环体
	}
}
3.4.1、小例题、九九乘法表
class CircuTest {
    public static void main(String[] args) {
        //输出九九乘法表
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "x" + i + "=" + i * j + "\t");
            }
            System.out.println("");
        }
    }
}

结果如下:
99乘法表

3.5、for语句、while语句、do while语句的异同点

  1. 语法格式不同。
  2. 执行流程不同。

for语句和while语句都是先判断循环条件,当为true时,再执行循环体
do while语句是先执行循环体,再判断循环条件。

  1. 使用情况不同。

当次数固定时:建议使用for语句
当次数不固定时,建议使用while语句或do while语句,其中先判断再执行的建议使用while语句,先执行再判断的建议使用do while语句。

  1. 当循环条件第一次就为false时,则

for语句执行0次循环。
while语句执行0次循环。
do while语句执行1次循环。


4、 break、return、continue区别

break

  1. 表示中断。
  2. 可以在switch case中使用,也可以在循环中使用。
  3. 当遇到break则结束当前整个switch case或者循环,执行外面的语句。

return

  1. 表示继续。
  2. 只能在循环中使用
  3. 当遇到continue则结束本次循环(当次循环),继续执行下一次循环

continue

  1. 表示返回。
  2. 在方法中使用。
  3. 当遇到return,则结束当前整个方法的执行,返回到方法的调用处。






最后修改于:2019年11月26日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值