Java基础 - 流程控制

​​​​​​分支结构 

分类

  1. if语句

    1. if else

    2. if else if else

  2. switch语句

if 语句

if( #布尔表达式 ){

#执行的操作 ;

}

如果为true,执行操作  如果为false,不执行操作

if else

if( #布尔表达式 ){

#执行操作1 ;

}else{

#执行操作2 ;

}

 如果为true 执行操作1  如果为false 执行操作2

else if 同理 第一个表达式为false 进入else if第二个表达式判断 

switch

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

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

如果和常量1不匹配,那么就判断是否和常量2匹配,如果匹配就执行语句体2

break, switch语句跳出运行 直接结束

if 和 switch 的区别

相同点 它俩都可以表达分支结构

不同点 

1、if语句格式相对灵活,switch语句相对弱小。所有的switch语句都可以被if语句替代。

2、if语句更多的是做一些连续性区间值的判断 ,画一个范围判断 ,而switch语句无法做到

3、if语句每次都需要获取表达式的值,而switch只获取一次表达式的值,所以switch的效率较高一些。

循环结构

用来简化需要重复执行的,相同或者相似的语句

分类 

  1. for

  2. while

  3. do...while语句

for语句

for (int i = 0 (1); i < 5 (2); i++ (3)) {
 循环体语句 (4);
}

执行顺序 1243 243 243 ... 2 判断条件不符 退出循环

练习 猜数字小游戏

后台预先生成一个随机数1-100 用户键盘录入猜数字 

根绝猜测的结果分别打印 "猜大了" "猜小了" "猜中了" 

直到5次机会用尽 "没机会了"

public static void main(String[] args) {
		// 系统产生一个1-100之间的随机数
		Random r = new Random();
		// 获取随机数
		int number = r.nextInt(100)+1;// 生成1-100的随机数
		boolean isGuess = false;
		System.out.println("随机数是" + number);
	// 键盘录入我们要猜的数据
	for (int i = 0; i < 5; i++) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个数字:");// 接收数据
		int guessNumber = input.nextInt();
		// 比较这两个数据
		if (guessNumber > number) {
			System.out.println("猜大了");
		} else if (guessNumber < number) {
			System.out.println("猜小了");
		} else {
			System.out.println("恭喜你猜中了!");
			isGuess = true;
			break;
		}
	}
	if (isGuess == false) {
		System.out.println("5次机会用完了");
	}
}

while语句

 while(条件表达式) { 
  循环体语句;
  初始化变量的自增;
}

当表达式成立,进入循环,运行到最后 变量自增 重新进入条件表达式判断

do while语句

 初始化语句;
 do {
  	循环体语句;
    初始化变量的自增;
} while (循环条件表达式);

先执行一次循环 然后开始判断表达式是否成立 若成立重新进入循环

三者区别

while和do while区别:

  1. while先判断 后执行,do while 先执行,后判断

  2. do while语句至少可以执行一次,另外两种有可能一次都执行不了

while/do while和for区别

  1. while/do while一般用于描述相对模糊的范围,不确定循环次数

  2. for用于描述相对准确,知道循环次数的循环

跳转语句

break语句:退出循环 

        循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误

int sum = 0; // 成绩之和
		double avg = 0.0; // 平均分
		Scanner input = new Scanner(System.in);
		System.out.print("输入学生姓名: ");
		String name = input.next();
		for (int i = 0; i < 5; i++) { 
			System.out.print("请输入5门功课中第" + (i + 1) + "门课的成绩: ");
			int score = input.nextInt(); // 录入成绩
			if(score<0) {
				System.out.println("您输入的成绩为负值  程序被迫中止");
				break;
			}
			sum = sum + score; // 计算成绩和
		}
		avg = (double) sum / 5; // 计算平均分
		System.out.println(name + "的平均分是:" + avg);

 continue语句:结束本次循环,继续下次循环

计算成绩>80分的学员人数以及比例

Scanner input = new Scanner(System.in);
		System.out.print("请输入学生人数");
		int ren = input.nextInt();
		int renshu = 0;
		for (int i = 1; i <= ren; i++) {
			System.out.print("请输入第" + i + "名学生的成绩");
			int score = input.nextInt();
			if (score > 80) {
				renshu++;
			} 
			else {
				continue;
			}	
	System.out.println("成绩大于80分的有" + renshu + "人");
	System.out.println("占所有人数的" + (renshu / ren));

循环嵌套

for循环里再添for循环

绘制 用#组成的三角形

for (int i = 0; i < 5; i++) {
	for (int j = 0; j <= i; j++) {
		System.out.print("#");
	}
	System.out.println();
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值