2021-3-4控制流程复习

在Java中用一对大括号阔起来的若干Java语句为"块"
"块"确定了我们所使用的变量的作用域,一个块可以嵌套在另一个块中(嵌套的两个块不能用同名的变量)
条件语句if:

if(A>B){
	A=100;
}
Created with Raphaël 2.2.0 开始 A>B? A=100 结束 yes no

if/else语句,else部分是可选的。else子句与最邻近的if构成一组。

循环:
当条件为true时,while循环执行一条语句(也可以是一个语句块):

while(condition){

}

我们可以增加一个计数器,并在循环体中更新当前累积数量,直到总值超过目标值为止。
代码片段

		Scanner in = new Scanner(System.in);
		System.out.println("How much money do you need to retire?");
		double mubiao = in.nextDouble();
		System.out.println("How much money will you contribute every year?");
		double cukuan = in.nextDouble();
		System.out.println("Interest rate in %:");
		double interestRate = in.nextDouble();
		double mybox = 0;
		int years = 0;
		while(balance < goal) {
			balance += payment;
			double interest = balance * interestRate/100;
			balance +=interest;
			years++;
		}
		System.out.println("You can retire in" + years);
	}

while循环语句首先检查循环条件,因此循环语句中的代码可能不被执行。如果希望循环体至少执行一次,则应该将检测条件放在最后,使用do/while循环语句可以实现这一功能。
代码片段

do {
		mybox += cukuan;
		double interest = mybox * interestRate/100;
		mybox +=interest;
		years++;
		System.out.printf("After year %d,your balance is %,.2f%n",years,mybox);
		System.out.println("Ready to retire?(Y/N)");
		input = in.next();
	}
while(input.equals("N"));

确定循环(for循环)
常见的for循环形式:

for(int i=0;i<10;i++){
	......
}

当在for循环第一个部分声明了一个变量之后,这个变量的作用域就为for循环的整体(如果在for循环的内部定义了一个变量,这个变量就不能在循环体之外使用,如果希望在循环体之外使用循环计数器的最后结果,就要确保这个变量在循环体外声明)。

多重选择Switch语句

Switch(){
	case 1:
	......
	break;

	case 2:
	......
	break;

	case 3:
	......
	break;
	(default):
}

switch语句将从与选项值相匹配的case标签处开始执行,直到遇到break语句,或者switch语句的结束处,如果没有相应的case标签,有default子句,就执行这个子句(有可能触发多个case分支,如果在case语句中没有break语句,那么会接着执行下一个case语句,这种情况可能会引发错误。)可以在调用switch语句时添加JVM中的-Xlint:fallthrough,此时会在没有break语句时,及时报错。

case类型为char、byte、short、int的常量表达式、枚举常量,Java SE 7开始添加字符串字面量。

中断控制流程语句
利用break跳出循环,其中break分为带标签和不带标签:
带标签:用于跳出多重嵌套的循环语句,中断了所有迭代,并回到了标签,但不重新进入迭代(标签必须放在希望跳出的最外层循环之前,并且紧跟一个冒号)
不带标签:只跳出了内循环,回到外部迭代。
代码片段

	Scanner in = new Scanner(System.in);
		int n = 0;
		read_data:
		for(int i = 0;i<=10;i++) {
			System.out.println("Enter your num");
			n=in.nextInt();
			if(n<5) {
				break read_data;
			}
			n += n;
		}
		System.out.println(n);

continue语句与break语句一样,将中断正常的控制流程,continue语句将控制转移到最内层循环的首部。
如果continue语句带有标签,将跳到与标签匹配的循环首部。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值