学习java---判断语句的使用

知识回顾:
1) 强调学习方法,it和其他知识不同的,数学,思维能力,抽象能力(难)语文,背。It是非常好学,工作22年,15年在软件企业中(初级、中级、高级、系统分析师、架构师、技术总监、后面走管理)知识都是应用,反复多敲多练。例如main,敲上上万变。
2) 什么是装箱拆箱?
a) 装箱,把基本类型变量转换包装类型
(包装类型)Integer i = 10;(基本类型)
明显=左边右边,不是一个相同类型,为什么在java中,自动装箱(转换)
真正代码:(包装类型)Integer i = new Integer(10);(包装类型)
b) 拆箱,把包装类型转换基本类型
(基本类型)int j = i;(包装类型)
明显=左边右边,不是一个相同类型,为什么在java中,自动拆箱(转换)
真正代码:int j = i.intValue(); (包装类型Integer提供方法intValue,它结果是Integer类型里值,10整数)
为什么写了不报错,底层工作原理。了解即可。真正开发你写上面代码能运行即可。
3) 三目运算符,java唯一一个三目运算符(三元运算符)
a) 有三个参数
b) 固定格式:(布尔表达式,只能有2个结果,true/false)(x>y)?x:y(死记)
4) 2个数求最大值?

package test;
	//导入单元测试import org.junit.Test;
	//求最大值public class Max {
	@Test	//求2个数最大值
	public void max2() {

		int x = 10;
    	int y = 20;
	
		//三目表达式
		int max = (x>y) ? x : y;
		
		//下面+不是一个数字,如果遇到字符串,+连接符,连接两边字符串
		System.out.println("最大值是:" + max);
	}
	
	@Test	//求3个数最大值
	public void max3() {
		//思路?2次三目运算符应用
		int x = 10;
		int y = 20;
		int z = 30;
		
		int max = (x>y) ? x : y;	//把x和y中最大值就赋值给max变量
		//复用上面max变量,变量可以再次赋值
		max = (max>z) ? max : z;
		
		System.out.println("最大值是:" + max);
	}}

今天内容:以后开发中最常见语法
流程控制:
1) 异常
2) 分支判断
a) 单分支 if
b) 多分支 switch
3) 循环结构
a) for
b) while
c) do-while
这些结构几乎后面开发中每天都用!!

流程控制:
1) 一般代码顺序执行,都执行
2) 判断是否执行,根据条件部分代码执行,部分代码不执行,其中就会跳过部分代码(if语句,三目运算符)
3) 循环,反复执行一段代码

1) 异常
a) 判断执行(部分代码执行,部分代码不执行)
b) 遇到关键字:try试图/catch捕获异常/finally最终/throw抛出异常/throws接收异常
c) 所有异常父亲:Exception
2) 经典异常,主动创建异常
被0除,数学上 1/0,分母不能为0,规定。出错,java如何处理错误?

一般情况下控制台中出现红色字就是错误。

怎么看英文:找一些关键字 Exception异常,main线程(操作系统)
java.lang.ArithmeticException,java提供常见异常Arithmetic数学
具体错误:/ by zero,违反了分母为0规则

package test;
public class TestArea { 	
public static void main(String[] args) { 		
//处理异常 try/catch,语法:固定格式
		try { 			
		 	//没有就执行下面的语句,一旦出错跳入catch中 	
		 	//可能出错代码 	int y = 100/0;		
		 	//编写,保存:编译都不会做检查 		
		 	System.out.println(y);		  
			System.out.println("正确"); 		
		}catch(Exception e) { //已经出错,才会执行,不出错,就不执行
			System.out.println("错误"); 		
			}
		 	System.out.println("执行完成"); 	
		 }
 }

finally 是try/catch不论代码执行正常还是错误都必须执行代码
特殊作用,以后例如数据库代码中,释放Connection链接,非常耗费资源,必须释放资源。

package test;
public class TestArea {
	public static void main(String[] args) {
				try {
			int y = 100/0;
			System.out.println("正确");
		}catch(Exception e) {
			//展示具体错误信息
			System.out.println("错误:"+ e.getMessage());
		}finally {
			//System.err打印字红色,error错误
			System.err.println("管你正确还是错误,都必须执行我!!!");
		}
		System.out.println("执行结束");
	}
}

Try、catch就是典型流程控制,如果正常,我们只执行里面try{}部分代码,如果出错,try中出错语句后面代码就不会执行,直接跳转catch中代码。不论代码执行哪些try也好,catch也好,都必须执行finally中的内容。

Throw 抛出异常
Throws 接收异常
Try/catch属于自己处理异常,如果异常处理不了呢?
摊上大事了,我没本事去解决?throw就可以把异常交给上级(java就是你的调用者)

package test;
public class TestArea {	//手写,提示生成,两种方式都可以接收异常
	public static void main(String[] args) throws Exception{
		try {
		int y = 100/0;		// by zero
		System.out.println("正确");
	}catch(Exception e) {
		//展示具体错误信息
		System.out.println("错误:"+ e.getMessage());
		
		//抛出异常
		throw new Exception("出错啦,分母不能是零!");	//创建一个新的异常,抛出,字符串错误信息
	}finally {
		//System.err打印字红色,error错误
		System.err.println("管你正确还是错误,都必须执行我!!!");
	}
	
	System.out.println("执行结束");
}}

经典判断,分支语句
1) if语句(最多)
男人(男人负责工作挣钱)和女人(女人负责貌美如花)
package test;

public class TestArea { //手写,提示生成,两种方式都可以接收异常
public static void main(String[] args){
boolean isMan = false; //true,男人,false,女人

	/*
	 * 如果是男人控制台输出:男人负责工作挣钱
	 * 如果是女人控制台输出:女人负责貌美如花
	 */
	
	//分支判断语句
	if (isMan) {		//括号内是布尔表达式
		System.out.println("男人负责工作挣钱");
	}else {			//是女人要做的事情
		System.out.println("女人负责貌美如花");
	}
}

}

2) switch语句(很少)
switch可以完全使用if语句去实现,只不过它更加简洁
swtich和case,default,关键字
业务需求:电话
电话:110警察,112医生,114查询电话号码,119火警

package test;

public class TestArea { //手写,提示生成,两种方式都可以接收异常
public static void main(String[] args){
//电话:110警察,112医生,114查询电话号码,119火警
/*
* 这个是switch特殊点,和日常思考方式不同
* 找到第一个匹配执行里面的语句,之后后面不判断,所有语句都执行
* 找到匹配前面代码都不执行,都跳过
*/
int phone = 135;
switch (phone) {
case 110:
System.out.println(“我是警察”);
break; //执行完成,就跳出switch语句
case 112:
System.out.println(“我是医生”);
break;
case 114:
System.out.println(“我是查号台”);
break;
case 119:
System.out.println(“我是火警”);
break;
default :
System.out.println(“这个电话不认识”);
}
System.out.println(“执行完成”);
}
}

Switch语句可以用if语句替代

package test;

import org.junit.Test;

public class TestArea {
	@Test		//多重if语句嵌套
	public void testIf() {
		int phone = 120;
		if(phone==110) {
			System.out.println("我是警察");
		}else if(phone==120) {
			System.out.println("我是医生");
		}else if(phone==114) {
			System.out.println("我是查号台");
		}else if(phone==119) {
			System.out.println("我是火警");
		} else {
			System.out.println("这个电话不认识");
		}
	}
@Test
public void testSwitch(){
	int phone = 135;
	switch (phone) {
	case 110:
		System.out.println("我是警察");
		break;		//执行完成,就跳出switch语句
	case 120:
		System.out.println("我是医生");
		break;
	case 114:
		System.out.println("我是查号台");
		break;
	case 119:
		System.out.println("我是火警");
		break;
	default : 
		System.out.println("这个电话不认识");
	}
	System.out.println("执行完成");
}

}

上午总结:
1) 异常:程序中会出现错误,日常开发工具中出错(编译器错误),程序隐性的错误。(运行时错误)
a) 总的异常,所有异常父亲,Exception,所有异常根
b) try 试图,只要代码中可能发生异常,这样代码就必须放在try中
c) catch 捕获异常,如果出错就执行catch里面代码 Exception e,e.getMessage()
d) finally 对复杂对象要释放资源(数据库链接对象Connection)不论代码正确错误都执行
e) throw 抛出异常,我们自己不去处理,我们处理不了,交给代码调用方法,main来处理。
f) throws 接收异常,main() throws Exception{},接盘侠
2) 流程控制
a) 顺序结构:代码从上往下执行,从左往右执行int i = 100*200;
b) 分支结构:有些代码执行,有些代码不执行,根据条件
c) 循环结构:反复执行一段代码
3) 分支语句
a) 单分支:if语句
b) 多分支:if-if else-else,switch语句

发布了36 篇原创文章 · 获赞 13 · 访问量 1081

猜你喜欢

转载自blog.csdn.net/weixin_44598691/article/details/104702878