Java学习笔记4——控制流程

块(block)作用域:块(即复合语句),是指由一对花括号括起来的若干条简单的Java语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。但是,不能再嵌套的两个块中声明同名变量。

  • if条件语句

if  先判断后执行

if(条件为真){
    代码块1
}
else{
    代码块2
}

注:1、可以省略大括号。2、省略大括号后if结构只能影响到下一行。

多重if结构

if (条件1为真){
    代码块1
}
else if (条件2为真){
    代码块2
}
else if (条件3为真){
    代码块3
} 
else {
    代码块4
}

实例

import java.util.Scanner;
/刚好是打折季,如总价大于50000大7折,否则9折,计算最后应付金额
 @author 棣哩哩
 @date 2018年9月6日 下午8:14:16
 @remarks TODO/

public class ShopppingDemo {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		float price;
		int count;
		double total;
		/1.让用户输入三种商品的单价和数量
		System.out.print("请输入路易斯威登中号手表单价:");
		price = input.nextFloat();
		System.out.print("请输入商品的数量:");
		count = input.nextInt();
		total = price * count;  /计算总价
		
		System.out.print("请输入爱马仕皮带单价:");
		price = input.nextFloat();
		System.out.print("请输入商品的数量:");
		count = input.nextInt();
		total += price * count;  /计算两种商品的总价
		
		System.out.print("请输入香奈儿东方屏风香水单价:");
		price = input.nextFloat();
		System.out.print("请输入商品的数量:");
		count = input.nextInt();
		/2.计算总价
		total += price * count;  /计算三种商品的总价
		//3.根据总价判断折扣力度
		if(total >= 50000){
			/打7折
			total = total * 0.7;  //total *= 0.7;
		}
		else
		{
			total = total * 0.9;  //total *= 0.9;
		}
		/4.打印打折后支付金额
		System.out.println("需要支付的金额:" + total);//或System.out.printf("需要支付的金额:%.1f" , total);
	}
}
  • 多重选择:switch语句

switch(表达式){
caae 常量1:
     语句1;
     break;
caae 常量2:
     语句2;
     break;
....
default:
     语句;
     break;
}

使用switch结构时的注意点:

  1. switch后的表达式类型可以是char、byte、short、int、String、枚举常量。
  2. case后常量表达式的值不能相同。
  3. case后允许多条语句,不需要大括号。
  4. 如不添加break语句,需特别注意执行顺序,否则可能引发多个case分支,出现错误。
  5. case和default子句的先后顺序可以自行变动。
  6. default子句可以省略。

switch快捷键:swi Alt+/

switch和多重if对比:

  • 相同点:都是用来处理多分支条件的结构。
  • 不同点:switch——等值条件判断,条件是有限个的时候(杀鸡刀);

                      多重if:判断某个连续区间时的情况(杀牛刀)

  • while循环

*理解循环结构基本原理;使用while循环结构;使用do-while循环结构;会使用公式调试程序

int i = 0;
while(i < 10){
    System.out.println("第。。。遍" + (i + 1) + 遍);
    i++;
}
i循环变量 i=0初值 i<10判断 i++变量更新 

循环三要素:1、循环变量的初值。2、循环变量的判断。3、循环变量的更新。

注:循环变量尽量只用来控制循环的次数;缺少循环变量的更新,循环会一直运行下去。

练习1

练习2

练习3

练习4

联系5

实现播放音乐,只需把文件夹拷到工程下面作为子目录,Java不支持mp3格式,需用格式工厂的软件换换成wav格式。产生随机数代码,播放音乐代码(包括暂停),延迟时间执行程序代码见联练习5。

  • do—while循环

基本语法

do{
    循环操作
}while();

特点:先执行再判断

  • 先执行一遍循环操作
  • 符合条件,循环继续执行
  • 否则,退出循环

例:

int a = 1,b = 10;
do{
    b -= a;
    a++;
}while(b-- < 0);
则执行循环语句后b的值为()

分析:do结构第一行执行完 b=9,a=1;第二行执行完 b=9,a=2;while(b-- < 0)等价于while(b < 0)b--;则执行完后b的值应该为8。

练习1

equals三种用法、printf、String.format用法见图。字符串比较不可以y用==,用equals实现。

while和do—while循环的区别

  • 执行顺序不同
  • 初始情况不满足循环条件时:while循环一次都不会执行,先判断后执行;do—while循环不管任何情况都至少执行一次,先执行后判断。

练习2

调试Java程序步骤

  1. 设置断点,在左边行数位置双击或者右键 break point。
  2. 开启调试/单步调试,点工具栏Debug图标进入调试。
  3. 观察变量的变化(variables) step over单步执行;step into 整体细节。
  • for循环(确定循环)

for(表达式1;表达式2:;表达式3)循环三要素
{
    语句;
}

快捷键:for Alt+/

  • 表达式1,通常是为循环变量赋初值,可省略,但分号不能省。例如 int i = 0;或 int cnt = 20;或count=1;
  • 表达式2,循环条件,是否继续执行循环,可省略,分号不能省。例如 i < 10;或 cnt == 20;或count >=5;
  • 表达式3,更新循环变量,可省略。例如:i++;cn +=2;count--;

练习1

for循环常见问题:

  1. 忘记定义循环变量或初始化
  2. 循环条件缺少时会造成死循环
  3. 循环变量不更新也会造成死循环
  4. 不可省略分号
  • 中断控制流程语句

break语句

break跳出整个循环,Java还提供了一种带标签的break语句,用于跳出多重嵌套的循环语句。标签必须放在希望跳出的最外层循环之前,并且必须紧跟一个冒号。

练习

continue语句

中断正常的控制流程,continue语句将控制转移到内层循环的首部,即跳过本次循环,继续下次循环,如果将continue语句用于for循环中,就可以跳到for循环的“更新”部分。

练习

break 和 continue 对比:

  • 使用场合:break 可用于switch 结构和循环结构中;continue 只能用于循环结构中。
  • 作用(循环结构中):break 语句终止某个循环,程序跳转到循环块外的下一条语句;continue 跳出本次循环,进入下一次循环。

循环结构总结

相同点:多次重复执行一个或多个任务时考虑使用循环来解决问题。。

区别:

  • 除了语法不同,判断和执行的顺序也不同
  • 适用情况不同:循环次数确定的情况下,通常选用for循环;循环次数不确定的情况时,通常选用while和do—while循环。

猜你喜欢

转载自blog.csdn.net/Hilary_Li/article/details/82597024