初入java03

这里写自定义目录标题

1 赋值运算符:
a> 基本赋值运算符 ”=”
java中唯一个自右向左运算的符号
b> 扩展赋值运算符 (算数运算符+基础赋值运算符)
+= -= *= /= %=
eg: a+=3; ==> a=a+3;
缺点: 不直观
优点:自动做强制类型转换
提高执行效率
推荐使用扩展赋值运算符
如:public class Operator01{
public static void main(String[] args){
short s1=1;
s1+=1; //a=a+1;
System.out.println(s1);
2比较运算符|关系运算符: 结果是boolean类型的值
> < >= <=
byte short int long float double char
== !=
可以做基本数据类型的比较,可以做引用数据类型的比较
如: public class Operator02{
public static void main(String[] args){
int a=5;
boolean flag = a+4 != 10;
System.out.println(flag);
3 逻辑运算符
两边的操作数都得是值为布尔类型的表达式

& 与 两个操作数都是true才是true,一个为false结果就为false
| 或 一个为true就是true,两个都为false才为false
! 非 —>去反 !true–>false
^ 异或 相同为false,不同为true

& & 两个操作数都是true才是true,一个为false结果就为false
|| 一个为true就是true,两个都为false才为false
(短路 如果左边的操作的值就能决定最终整个表达式的结果,右面的表达式就不在执行
) 推荐使用短路与 短路或
4 java中的条件运算符 (三目或三元)

公式: 条件表达式 ? 值1 : 值2 ;
执行流程:
1.先执行条件表达式 -->值为boolean类型的表达式
2.如果结果为true, 最终结果取值1
3.如果结果为false,最终结果取值2
如: public class Operator04{
public static void main(String[] args){
int a=6;
int b=7;
//得到ab之间最大的值
//int max = a>b ? a : b;
//System.out.println(max);

	//计算a是否为一个偶数
	String str=a%2==0? "偶数" : "奇数";
	System.out.println(str);

5 位运算符 (==> 位运算 做*2/2比直接做运算效率高)

操作数先转为2进制,进行运算,得到结果再转为十进制

& 二进制的两个数,同一位置的值,进行逻辑判断,两个值如果有一个为0就位0,两个值都是1才是1
| 同一位置的两个数,如果有一个为1就是1,两个都是0才是0
^ 同一位置的两个数,如果相同为0,不同为1

位移运算符:
>> 右移 左边的操作数转为二进制以后,向右移动第二个操作数个位数,保留分水岭左边的内容转为十进制 分水岭:左边操作数二进制形态的最右边有一个分水岭
8>>3 ==> 8/2^3 第一个操作数 / 2^第二个操作数次方
<< 左移 左边的操作数转为二进制以后向左移动第二个操作数个位数,剩余空间补0,再转为十进制
8<<3 ==> 8*2^3 第一个操作数 * 2^第二个操作数次方

如:public class Operator05{
public static void main(String[] args){
System.out.println(2&3); //2
System.out.println(2|3); //3
System.out.println(2^3); //1

6 运算符的优先级
口诀:
单目算数位关系, 逻辑三目后赋值.
即:算数运算符中的i++>算数运算符>位移运算>关系运算符>逻辑运算符>条件运算符>赋值运算符.
如: public class Operator05{
public static void main(String[] args){
boolean x = a < b ? ++a * 2 > b || a > b : a < b;
System.out.println(x);
7 Scanner 键盘输入
基本数据类型
int a=4;
使用引用数据类型的方式
1.创建引用数据类型的变量|引用
引用数据类型 变量名|引用 = new 引用数据类型(); --公式
2.使用功能
引用.功能名字();

Scanner:
1.导包 import 相对地址;
提供类Scanner的位置
位置:类的上面导包
2.创建Scanner类型的引用
3.功能名字();
nextInt(); 接收用户输入的int类型整数
nextByte(); 接收用户输入的byte类型整数
nextShort(); 接收用户输入的Short类型整数
nextLong(); 接收用户输入的Long类型整数
nextDouble(); 接收用户输入的Double类型整数
nextFloat(); 接收用户输入的Float类型整数
next(); 接收用户输入的String类型数据
有效字符开始接收,知道遇到空格,多个宫格,tab结束接受,欲enter停止功能
nextLine() 接收用户输入的一整行的内容
从第一个位置开始接收,知道输入enter结束
nextLine()功能之前如果存在系列的next功能.需要处理遗留在缓冲区的enter
4.引用.close(); 一定要在用完之后关闭,否则当前类中重新开启也不能用
如:
//1.导包
import java.util.Scanner;
public class Scanner07{
public static void main(String[] args){
//2.创建Scanner类型的引用
Scanner sc=new Scanner(System.in);
//3.使用功能
String str=sc.next();
System.out.println(str);
//处理缓冲区中遗留的enter
sc.nextLine();
String str1=sc.nextLine();
System.out.println(str1);

	//关闭
	//sc.close();

8 Random 类 (产生随机数的)
1.导包 java.util.Random
2.创建类型的引用 Random
3.使用功能:
产生随机整数
nextInt() --> int范围内的随机整数
nextInt(n) --> 随机产生 [0,n) 随机整数
n只能决定最大范围
产生随机小数
nextDouble() [0.0,1.0)随机小数

常用公式:
[0,max)   引用.nextInt(max);
[0,max]   引用.nextInt(max+1);
[min,max) 引用.nextInt(max-min)+min;
[min,max] 引用.nextInt(max-min+1)+min;

如:
//1.导包
import java.util.Random;
public class Random08{
public static void main(String[] args){
//2.创建类型的引用
Random ran=new Random();
//3.nextInt()
int i1=ran.nextInt();
System.out.println(i1);
9 测试java中的流程控制语句

顺序结构:默认从上到下 从左到右
选择结构: 根据某些条件执行不同的代码
循环结构: 重复执行一些代码.

a>选择结构:
If…else
Switch
单分支|单选择 :
if(条件表达式){
语句体…
}
条件表达式:值为boolean类型的表达式
执行流程:
1.计算条件表达式的结果
2.如果false,就跳过if结构,继续向下执行
3.如果为true,执行{}中的语句体
双分支|双选择 :
if(条件表达式){
语句体1…
}else{
语句体2
}
如果条件满足执行语句体1,条件不满足执行语句体2

多选择|多分支 :
if(条件表达式1){
语句体1…
}else if(条件表达式2){
语句体2…
}else if(条件表达式3){
语句体3
}else{
语句体n;
}
执行流程 :
1.先执行条件表达式1,如果为true,执行语句体1
2.如果为false,计算条件表达式2,如果为true,执行语句体2
3.如果为false,计算条件表达式3,如果为true,执行语句体3
4…
5.如果以上条件都不满足,执行else中的语句体n

注意:语句体前后的{}可以省略,语句体只有一句的时候可以省略

if 和 三元运算符 之间的选择
1.if能够对多个条件进行判断
2.三元运算符肯定有结果, if可以没有结果
3.if结构清晰,三元运算符结构简单效率较高

10 测试java中switch 定值判断

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

default:
语句体n;
break;
}
表达式:byte,short,int,char , 枚举(1.5),字符串(1.7)这几种类型的值
case: case 后面接的值是与表达式进行判断,必须是一个值,不能是区间
break: 防止case穿透 结束switch语句
case穿透: 从满足条件的语句体开始执行,如果遇到break结束switch,如果没有break下面的case不再判断直接执行语句体
default:默认的,相当于else,如果以上都不满足,就执行default中的内容
default位置可以改变

if与switch之间的区别
if可以做区间判断
switch 定值判断
能用switch都可以用if 能用if的不一定能用switch

11 测试java中循环
循环:重复执行一些代码
for
while
do…while

	for循环
		for(条件初始化;条件判断;条件变化 ){
			循环体语句;
		}
		
		执行流程:
			1.先执行条件初始化  声明一个变量并且赋值 i
			2.条件判断   对i进行判断   值为boolean类型的表达式
				如果值为false,for循环结构结束,如果值为true,执行循环体语句
			3.条件变化
			重复执行2,3步
		
		注意:在循环体语句中可以使用i的值   
			 变量i可以决定循环执行的次数

注意
在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分,然后决定循环是否继续进行。在for循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,最后根据“表达式2”的值来决定for循环是否执行。再循环体内,不论continue是作为何种语句中的成分,都将按上述功能执行,这点与break有所不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值