Java基础语法(类型转换、运算符、分支、循环语句、随机数)

一、类型转换

隐式转换

小范围向大范围转换,为自动转换(隐式转换)

	byte/short/char---->int---->long----->float----->double

强制转换

(目标数据类型)值或变量

byte/short/char 在参加运算时会转换为int参与运算

常量优化机制:首先把二个常量的数值计算出来,如果没有超过前面类型的范围就不会报错,当出现小转大的错误时,会直接编译出错
例:在字符串中遇到的常量优化机制

public class Test3 {
	public static void main(String[] args) {
		String s1 = "abc";
        String s2 = "ab";
        String s3 = "ab" + "c";
        System.out.println(s1 == s3);//true
	}
}

二、运算符

在这里插入图片描述
算术运算符>关系运算符>逻辑运算符

赋值运算符

赋值运算符:+=,-=,*=,/=,%=
赋值运算符底层自带强转功能
例如:
short i=5;
i+=1;//不会报错,底层自带强转,i=(short)(i+1);
i=i+1;//会报错,小转大,需要强转

逻辑运算符

&: 不短路,不管左边是否为假,右边都执行
&&:短路与,有假为假,短路
|:	不短路,不管左边是否为真,右边都执行
|| :短路或,有真为真,会短路
^ (异或): 相同为假,相异为真

三目运算符

	数据类型 变量名= 比较表达式 ? 表达式1 : 表达式2;
	纯粹的格式:
		布尔表达式 ? 表达式1 : 表达式2;
		先判断布尔表达式的结果,如果结果为true三元表达式的结果就是表达式1,否则就是表达式2

位运算符

在这里插入图片描述
小思考:
借助异或实现数值互换(不借助第三个变量)
a=a^b;
b=b^a;
a=a^b;

三、分支语句、循环语句

分支语句(if)

1.定义格式
	if(比较表达式) {
		语句体;
	}
2.执行流程
	判断比较表达式。如果是true,就执行语句体
	如果是false。就不执行语句体了

3.示例代码
	public class Demo02If {
		public static void main(String[] args) {
			System.out.println("今天天气不错,正在压马路……突然发现一个快乐的地方:网吧");
			int age = 16;
			if(age >= 18) {
				System.out.println("进入网吧,开始high!");
			}
			System.out.println("回家学习");
			
		}
	}

4.注意事项
	如果大括号中的语句体只有一行代码的时候可以把大括号省略.但是墙裂建议永远不要省略

循环语句(for)

for(初始化语句;比较表达式;步进语句){
		循环体;
	}
	执行流程:
	先执行初始化语句,然后看条件判断的结果,如果为false  循环结束,如果为true  执行循环体.循环体执行完后执行条件控制语句.然后继续执行条件判断(PS:注意,不是初始化语句)如果结果为false,结束循环,结果为true则继续循环体,然后条件控制语句以此类推.

思考:
①初始化语句会执行几次?
只有在最开始的时候执行了一次
②什么情况下循环体一次都执行不了?
如果第一次进行条件判断的时候结果为false则循环体一次都执行不了

循环语句(while)

基本格式:
	while(比较表达式){
		循环体;
	}
	执行流程:
	看判断表达式的结果,如果为false循环结束,如果为true,则执行循环体.循环体执行完后继续看判断表达式的结果以此类推
	完整格式:
	初始化语句;
	while(比较表达式){
			循环体;
			步进语句;
	}
	1, 执行初始化语句
	2, 执行判断表达式, 看其结果为 true 还是 false 
			如果为 false , while 循环结束;
			如果为 true ,继续执行循环体;
	3, 执行条件控制语句
	4, 回到2步骤继续

循环语句(do while)

格式:
	do{
		循环体;
	}while(比较表达式);
	执行流程:
	先执行循环体,然后看判断表达式的结果如果为true则继续执行循环体如果判断表达式的结果为false则循环结束,如此反复。	

跳转控制循环的语句

break

在循环过程中,碰到break整个循环就直接结束了
应用场景:break只能出现在循环中或者switch中

continue

如果在循环过程中碰到了continue,则跳过本次循环,继续下次循环

问题:
下面代码会输出哪些数字
代码:

	for(int i=1;i<10;i++){
		if(i%2==0){
			continue;
		}else{
			break;
		}
		System.out.println(i);
	}

因为最后的输出语句永远执行不到,这个时候编译的时候就会报错

标号(不常用)

在这里插入图片描述

四、Random

  A.  导入包    import java.util.Random;
 B.  创建对象   Random r = new Random();
 C.  获取随机数  int num = r.nextInt(10);//取值范围是[0,9]


	获取一个范围在1-10之间的随机数(包含10)
 r.nextInt(10)+1; 

	获取一个范围在1-100之间的随机数(包含100)
	r.nextInt(100)+1; 

	获取一个范围在20-80之间的随机数(包含80)
	r.nextInt(61)+20; 
	(80-20)+1,作为nextInt()方法的参数,在+上起始范围值

	小技巧: + 号 后边加上的数值就是 取值范围的 起始值;
					括号里的数值 用 结束值减去起始值 就是最终的数值;
					(如果需求还要包含结束值的话,那么括号里的数值还需要+1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值