黑马程序员Java课程笔记003判断选择循环语句


查看上一节:Java课程笔记002
查看下一节:Java课程笔记004

第一章 流程控制

1.1 概述

在一个程序执行的过程中,程序的流程的对运行结果有直接的影响。

1.2 顺序结构

//顺序结构
//开始-->步骤A
public class Demo01Sequence {
    
    
	public static void main(String args[]) {
    
    
	System.out.println("今天天气不错");
	System.out.println("挺风和日丽的");
	System.out.println("我们下午没课");
	System.out.println("这的确挺爽的");
	}
}

第二章 判断语句

2.1 判断语句1–if

if(关系表达式){
语句体;
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体

//单if语句
public class Demo02If {
    
    
	public static void main(String args[]){
    
    
		System.out.println("今天天气不错,正在压马路,突然发现一个快乐的地方:网吧");
		int age = 19;
		if(age >= 18){
    
    
			System.out.println("进入网吧,开始打LOL");
			System.out.println("遇到了一群猪队友,开始骂街");
			System.out.println("结账走人");
		}
		System.out.println("回家吃饭");
	}
}

2.2 判断语句2–if…else

//标准的IfElse语句
public class Demo03IfElse{
    
    
	public static void main(String args[]){
    
    
		int num = 666;
		
		if(num % 2 == 0){
    
    
			//如果除以2能够余数为0,说明是偶数
			System.out.println("偶数");
			
		}else{
    
    
			System.out.println("奇数");
		}
	}
}

2.3 判断语句3–if…else if…else

if(判断条件1){
执行语句1;
}
else if(判断条件2){
执行语句2;
}

else if(判断条件n){
执行语句n;
}
else{
执行语句n+1;
}

// x和y的关系满足如下:
// 如果x >= 3,那么y = 2x + 1;
// 如果-1 < x < 3,那么y = 2x;
// 如果x <= -1,那么y = 2x -1;
public class Demo04IfElseExt{
    
    
	public static void main(String args[]){
    
    
		int x = -10;
		int y;
		if(x >= 3){
    
    
			y = 2 * x +1;
		}
		else if(-1 < x && x < 3){
    
    
			y = 2 * x;
		}
		else{
    
    
			y = 2 * x - 1;
		}
		System.out.println("结果是:" + y);
	}
}

2.4 语句练习

指定考试成绩,判断成绩的等级:
90 – 100 优秀
80 – 89 好
70 – 79 良
60 – 69 及格
60以下 不及格

public class Demo05IfElsePractise{
    
    
	public static void main(String args[]){
    
    
		int score = 77;
		if(score >= 90 && score <= 100){
    
    
			System.out.println("优秀");
		}
		else if(score >= 80 && score <= 89){
    
    
			System.out.println("好");
		}
		else if(score >= 70 && score <= 79){
    
    
			System.out.println("良");
		}
		else if(score >= 60 && score <= 69){
    
    
			System.out.println("及格");
		}
		else if(score >= 0 && score <= 59){
    
    
			System.out.println("不及格");
		}
		else{
    
    // 单独处理边界之外的不合理情况
		System.out.println("数据错误");
		}
	}
}

2.5 if语句和三元运算符的互换

// 使用三元运算符和标准的if-else语句分别实现:取两个数字当中的最大值
// 三元运算符和if-else语句是可以等效替换的
public class Demo06Max{
    
    
	public static void main(String args[]){
    
    
		int a = 105;
		int b = 20;
		
		// 首先使用三元运算符
		// int max = a > b ? a : b;
		// 使用今天的if语句
		int max;
		if(a > b){
    
    
			max = a;
		}
		else{
    
    
			max = b;
		}
		System.out.println("最大值:" + max);
	}
}

第三章 选择语句

3.1 选择语句–switch

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

default:
语句体n + 1;
break;
}
首先计算出break的值;
和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束;
最后,如果所有的都不匹配,就会执行default 语句体部分,然后程序结束。
注意:最后一个break可以不写,但是这不是一个好的习惯。

public class Demo07Switch{
    
    
	public static void main(String args[]){
    
    
		int num =10;
		switch (num) {
    
    
			case 1:
				System.out.println("星期一");
				break;
			case 2:
				System.out.println("星期二");
				break;
			case 3:
				System.out.println("星期三");
				break;
			case 4:
				System.out.println("星期四");
				break;
			case 5:
				System.out.println("星期五");
				break;
			case 6:
				System.out.println("星期六");
				break;
			case 7:
				System.out.println("星期日");
				break;
			default:
				System.out.println("数据不合理");
				break;// 最后一个break语句可以省略,但是强烈建议不省略
		}
	}
}

3.2 case的穿透性

/*
switch语句使用的注意事项:

1. 多个case后面的值不可以重复,重复则编译报错。
2. switch后面小括号当中只能是下列数据类型:
基本数据类型:byte/short/char/int
引用数据类型:String字符串、enum枚举

3. switch语句可以很灵活:前后顺序可以颠倒(对流程没有影响),而且break语句还可以省略(省略后颠倒顺序可能对流程有影响)。
“匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体语句结束为止。”

*/
public class Demo08SwitchNotice{
    
    
	public static void main(String args[]){
    
    
		int num = 2;
		switch(num){
    
    
			case 1:
				System.out.println("你好");
				break;
			case 2:
				System.out.println("我好");
				// break;
			case 3:
				System.out.println("大家好");
				break;
			default:
				System.out.println("他好,我也好");
				break;
			
				
			
		}
	}
}

第四章 循环语句

4.1 循环概述

循环结构的基本组成部分,一般可以分为四部分:

  1. 初始化语句:在循环开始最初执行,而且只做唯一一次。
  2. 条件判断,如果成立,则循环继续;如果不成立,则循环退出。
  3. 循环体,重复要做的事情,若干行语句。
  4. 步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次。

4.2 循环语句1–for

for循环语句格式
for(初始化表达式①; 布尔表达式②; 步进表达式③){
循环体④
}
执行顺序:1234>234>234…2不满足为止
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行语句
④循环后,循环条件所涉及变量的变化情况
重复做一些事情,而且次数比较确定,可以用for循环。

/*
循环结构的基本组成部分,一般可以分为四部分:

1. 初始化语句:在循环开始最初执行,而且只做唯一一次。
2. 条件判断,如果成立,则循环继续;如果不成立,则循环退出。
3. 循环体,重复要做的事情,若干行语句。
4. 步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次。
*/
public class Demo09For{
    
    
	public static void main(String args[]){
    
    
		for(int i = 1; i <= 100; i++){
    
    //单独使用,此时++i和i++效果相同。
			System.out.println("我错啦!" + i);
		}
		System.out.println("程序停止");
	}
}

4.3 循环语句2–while

** while循环语句格式:**
初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}
执行流程
执行顺序:①②③④>②③④…②不满足为止
①负责完成变量初始化
②负责判断是否满足循环条件
③具体执行的语句
④循环后,循环变量的变化情况

4.4 循环语句3–do…while

初始化语句①
do{
循环体③
步进语句④
}while(条件判断②);
执行顺序:①③④>②③④…②不满足为止
①负责完成变量初始化
②负责判断是否满足循环条件
③具体执行的语句
④循环后,循环变量的变化情况
至少执行一次

扫描二维码关注公众号,回复: 13509949 查看本文章
/*
do-while循环的标准格式:

do{
	循环体
}while(条件判断);

扩展格式:

初始化语句
do{
	循环体
	步进语句
}while(条件判断);
*/
public class Demo11DoWhile{
    
    
	public static void main(String args[]){
    
    
		for(int i = 1; i < 10; i++){
    
    
			System.out.println("原谅你啦!起来吧!地上怪凉!" + i);
		}
		System.out.println("=========");
		int i = 1; // 初始化语句
		do{
    
    
			System.out.println("原谅你啦!起来吧!地上怪凉!" + i); // 3. 循环体
			i++; // 4.步进语句
		}while(i <= 10); // 2. 条件判断 
	}
}

用循环求出1-100之间的偶数和

/*
题目:求出1-100之间的偶数和

思路:
1. 既然范围已经确定了是1-100之间,那么我就从1、2、3.....100这么多数字一个进行检查。
2. 总共有100个数字,并非所有数字都能用,必须要是偶数才能用,判断(if语句)偶数:num%2 == 0;
3. 需要一个变量,用来进行累加操作,也就好比是一个存钱罐。
*/
public class Demo12HundredSum{
    
    
	public static void main(String args[]){
    
    
			int sum = 0; // 用来累加的存钱罐
		for(int i = 1; i <= 100; i++){
    
    
			if(i % 2 == 0){
    
     // 如果是偶数
				sum += i;
			}
		}
		System.out.println("结果是:" + sum);
		sum = 0;
		int i = 1;
		while(i <= 100){
    
    
			if(i % 2 == 0){
    
    
				sum += i;
			}
			i++;
		}
		System.out.println("结果是:" + sum);
		sum = 0;
		i = 1;
		do{
    
    
			if(i % 2 == 0){
    
    
				sum += i;
			}
			i++;
		}while(i <= 100);
		System.out.println("结果是:" + sum);
	}
}

4.5 循环语句的区别

/*	
三种循环的区别:

1. 如果条件判断从来没有满足过,那么do循环和while循环会执行0次,但是do-while循环会至少执行一次。
2. for循环的变量在小括号中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。
*/
public class Demo13LoopDifference{
    
    
	public static void main(String args[]){
    
    
		for(int i = 1; i < 0; i++){
    
    
			System.out.println("Hello");
		}
		// System.out.println(i); // 这一行是错误写法!因为变量i定义在for循环小括号内,只有for循环自己能用。
		System.out.println("================");
		
		int i = 1;
		do{
    
    
			System.out.println("World");
			i++;
		}while(i < 0);
		// 现在已经超出了do-while循环的范围,我们仍然可以使用变量i
		System.out.println(i); // 2
	}
}

4.6 跳出语句

break

/*
break关键字的用法有常见的两种:

1. 可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
2. 还可以用在循环语句当中,一旦执行,整个循环语句立刻结束,打断循环。

关于循环的选择,有一个小建议:
凡事次数确定的场景多用for循环;否则,多用while循环。
*/
public class Demo14Break{
    
    
	public static void main(String args[]){
    
    
		for(int i = 1; i <= 10; i++){
    
    
			// 如果希望从第四次开始,后续全都不要了,就要打断循环
			if(i == 4){
    
     // 如果当前是第4次
				break; // 那么就打断整个循环
			}
			System.out.println("Hello" + i);
		}
	}
}

continue

/*
另一种循环控制语句是continue关键字。
一旦执行,立刻跳过当前次循环内容,马上开始下一次循环。
*/

public class Demo15Continue{
    
    
	public static void main(String args[]){
    
    
		for(int i =1; i <= 10; i++){
    
    
			if(i == 4){
    
    
				continue;
			}
			System.out.println(i + "层到了。");
		}
	}
}

第五章 扩展知识点

5.1 死循环

/*
永远停不下来的循环,叫做死循环。

死循环的标准格式:
while(true){
	循环体
}
cmd窗口按住ctrl+c停止循环
*/
public class Demo16DeadLoop {
    
    
	public static void main(String args[]){
    
    
		while(true){
    
    
			System.out.println("哈哈哈,吃瓜瓜!");
		}
		// System.out.println("He"); // 无法访问的语句
	}
}

5.2 嵌套循环

所谓嵌套循环,是指一个循环体是另一个循环。比如for循环里面还有一个循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数
嵌套循环格式:
for(初始化表达式①;循环条件②;步进表达式⑦){
for(初始化表达式③;循环条件④;步进表达式⑥){
执行语句⑤;
}
}
嵌套循环执行流程:
123456>456>723456>456
外循环一次,内循环多次

public class Demo17LoopHourAndMinute{
    
    
	public static void main(String args[]){
    
    
		for(int hour = 0; hour < 24 ; hour++){
    
    
			
			for(int minute = 0; minute < 60; minute++){
    
    
				System.out.println(hour + "点" + minute + "分钟");
			}
		}
	}
}

查看上一节:Java课程笔记002
查看下一节:Java课程笔记004

猜你喜欢

转载自blog.csdn.net/qq_44005101/article/details/114274396