J运算符、控制语句、循环语句、方法、方法的重载

JAVA基础第三部

一、常见进制与转换

进制组成范围开头(标识)
2进制1、0满2进10b或者0B
8进制0~7满8进10
10进制0~9满10进1
16进制0~9 + a~f(10 ~15)满16进10x或者0X

其他进制转10进制:从右往左第一个数开始*当前进制数的0次方+第二个数 * 当前进制数的1次方 以此类推 求和

十进制转其他进制:这个数一直除以进制数,看余数;

浮点型

​ 整数为o的时候可以省略:

System.out.println(.1234); // 0.1234

​ 科学计数法表示:

​ e=10;

System.out.println(1.23e2); //132
System.out.println(1.23e-2); //0.0123

二、常见的转义字符

转义字符是一种特殊的字符常量

​ 转义字符从 \ 开始 + 要转义的字符

​ \b 退格 、 \n 换行ln 、 \r 光标回到行首
​ \t 制表符:制表符占8个空格,会自动补齐

System.out.println("AAABBBCCC\tAAAAA");//AAAAAAAACCC      AAAAA
										 1234567812345678

三、运算符

种类:

1)单目运算符/一元运算符:操作数只有一个的运算符 +(正号) -(负号) ++ –

2)双目运算符/二元运算符:操作数有俩个的运算符 + - * /

3)三目运算符/三元运算符:条件表达式 ?true:false

1、算数运算符

​ + - * /

​ +:

​ 1)正号

​ 2)加法运算

​ 3)字符串的连接符:当+ 左右两边如果有字符串出现,就作为字符串的连接符使用

​ % 取余:
​ 第一个操作数如果小于第二个操作室,结果就为第一个操作数

System.out.println(3%5);//3		
2、赋值运算符

​ 一、基本赋值运算符: =
​ java中唯一一个自右向左运算的符号

​ 二、扩展赋值运算符:+= -= *= /= %=

a+=b-> a=a+b; 
a*=b-> a=a*b;

​ 特点:提高执行效率、自动做强制类型转换 唯一缺点就是不直观

3、比较运算符

​ 也称关系运算符

<	<=	>	>=	==(等于)	!=(不等于)

​ 最终结果为boolean类型

4、条件运算符

​ 也称三目运算:
​ 格式 条件表达式 ? 值1 : 值2;

​ 1)最终结果也是boolean类型

​ 2)如果为true,最终的结果取值1

​ 3)如果为false,最终的结果取值2

5、位运算符

所有操作数先转为二进制的形式参与运算,再把结果转为十进制的形式

​ & :同一位置的俩个数,俩个都是1才为1 否则就是0

​ | :同一位置的俩个数,俩个都是0才为0 否则就是1

​ ^ :相同为0 不同为1

位移运算符:

​ 左移 << 第一个操作数*2的第二个操作数次方 *2

9<<2	//36

​ 右移>>第一个操作数/2的第二个操作数次方 /2

8<<2  //2
6、逻辑运算符

​ 操作谁都为布尔类型的表达式(false/true)

​ 一、&与:俩个都为true才是true,否则false

​ 二、|或:俩个都为false才是false,否则true

​ 三、! 非:取反 !flase=true !true=flase

​ 四、^异同:相同为false。不同为true

&&||相当于& |的升级版跟符合编程的规范 提高执行效率叫做短路与 短路或

​ 当第一个操作数就已经能决定最终的结果了,第二个操作数将不再执行

四、Scanner输入类

​ 导包:使用Scanner类时需要引入java中util包中的Scanner类

import java.util.Scanner;

​ 创建: 应用的数据类型 变量名 =new 引用数据类型();

​ 使用:变量.功能名字();

//创建
Scanner s1=new Scanner();
//使用
int a=s1.next();//接收字符串 不接受空格
int a=s1.nextLine();//接收一行中所有内容 包括空格
int a=s1.nextInt();//接收整数型
int a=s1.nextDouble();//接收Double类型数据
int a=s1.nextByte()//接收Byte类型数据
int a=s1.nextShort()//接收Short类型数据

五、Random随机数

​ 导包:使用Random类时需要引入java中util包中的Random类

import java.util.Random;

​ 创建:

Random r=new Random;
//使用
r.nextInt();//产生一个int范围内的随机整数
r.nextInt(n);// 产生0~n随机整数  [0,n)
r.nextInt(b-a+1)+a;//产生一个 a~b之间的随机数 固定公式
r.nextDouble() //产生[0,1)之间的随机小数

六、iF语句

​ IF语句属于选择结构,根据选择决定执行的内容

​ if语句可以做区间判断

​ IF语句的3种用法:

//1、单选择|单分支
if(条件表达式){
	语句体;
}//条件表达式必须布尔类型。true才会执行语句体,false不执行

//2、双选择|多分支
if(条件表达式){
	语句体1;
}else{
	语句体2;
} //true才会执行语句体1,false执行语句体2

//3、多选择|多分支
if(条件表达式1){
	语句体1;//条件表达式1为true执行语句体1
}else if(条件表达式2){
	语句体2;//条件表达式2为true执行语句体2
}else if(条件表达式3){
	语句体3;//条件表达式3为true执行语句体3
}
	....
else{
//以上条件都不满足执行的内容
				}

无论是多选还是单选,双选,只要语句体只有1句,前后的{}可以省略

七、Switch语句

switch 只能做定值判断

表达式使用的数据类型:byte,short,int,char,枚举(1.5),字符串(1.7)

case:表达式的值和case的值相同时 执行该case中的语句体;

break: 结束这个switch语句,如果没有break会发生case穿透

default: 以上case都不满足条件,执行default中的语句体(和else作用一样)

switch(表达式){
			case1:
				语句体1;
				break;
			case2:
				语句体2;
				 break;
				....
			default:
				语句体n;
				break;
		}

八、循环语句For、While、do…Whlie

1、for循环

格式:	
for(条件初始化;条件判断;条件变化){
			重复执行的语句;
		}
例如:循环10:
	// i 是决定执行语句体的次数 i变量只在循环体中使用 
	for(int i=0;i<=9;i++){
			重复执行的语句; //当循环体只有一句的时候,前后的{}可以省略
		}

​ 流程:

​ 1.条件初始化:声明一个变量,并且第一次赋值–>这个变量就是条件i
​ 2.条件判断,结果如果为false,直接结束for循环,如果结果为true,满足条件执行{}中的语句体
​ 3.条件变化: i自身的值的变化
​ 从第二次开始重复执行第2,3步

2、While循环

先判断再执行

格式://whil循环属于条件循环
		条件从初始化;
		while(条件判断){
			语句体;
			条件变化;
		}		
		for:次数循环
		while:条件循环
		
例如:打印1~100的数字
		int i=0;
		while(i<=100){ //当i不满足条件判断就不会进入循环 
			System.out.println(i);
			i++;
		}

3、Do…While循环

先执行后判断

格式:
		条件初始化;
		do{
		循环体语句;
			条件变化;
		}while(判断条件);
例如:打印1~100的数字
		int i=1;		
		do{
			System.out.println(i);
            i++;
		}while(i<=100)
		

特点:无论满足不满足判断条件都会执行一次

4、break|continue

一、break:结束本次循环 用于循环体中和swtich

二、continue:结束本次循环 直接进入下一次循环 循环体中使用

5、循环嵌套

只需要记住:外循环执行一次,内循环执行一轮
​ 内循环中使用break只能结束内循环

内循环中使用break结束外循环的方式:

a:	for(条件初始化;条件判断;条件变化){  //在外循环for前面定义一个标识符+:
			代码
		b:	for(条件初始化;条件判断;条件变化){
				代码
                   break a;  //使用break时 标明外循环的标识符
			}
			代码
		}

九、方法

1、定义

具有特定功能的代码块成为方法

​ 特点:

​ 1、方法不调用的时候说不会执行的

​ 2、类中方法外,方法不能嵌套

一、有返回值类型

参数:
​ 实际参数(实参):调用方法时()中的参数

​ 形式参数(形参):定义方法时()中的参数

​ 形参和实参要一 一 对应包括 位置、顺序、类型等

//有返回值类型格式:
 	//方法名:标识符符合标识符的命名规则和规范,方法的调用要根据方法名
 	修饰符 返回值类型 方法名([参数列表]){
				方法体语句;
				return 返回值;//当方法执行结束返回的值,返回值必须类型必须和 返回值相同
			}
			

//有返回值类型的调用: 在主方法中调用
	public static void main(String[] args){
		//直接调用
		方法名(实参);
		double d = 方法名(实参);
		//赋值调用
		System.out.println(d); //打印
		//输出调用
		System.out.println(方法名(实参));		
	}	


返回值类型: 基本数据类型和应用数据类型

参数列表:

​ 1、参数列表 []这个括号表示可有可无,也可以有多个参数

​ 2、方法定义的时候,未知的不确定的值定义在参数列表上

​ 3、数据类型 参数名1,数据类型 参数2, 调用方法传入参数必须和参数列表中类型一致

​ 4、参数相当于局部变量的声明

return;

​ 1、return除了可以结束循环也可以结束方法

​ 2、return在有返回值类型中必须带有并且带返回值

二、没有返回值类型
格式:
	修饰符 void 方法名([参数列表]){  //void表示没有返回值类型的方法
			方法体语句;
			[return];
			}
例子:
	//比较两个数据是否相同
	//返回值:String   参数: int x,int y
	public static String equals(int x,int y){
		if(x==y){
			return "相等";
		}else{
			return "不相等";
		}
	}	
调用:
public static void main(String[] args){
		System.out.println(equals(7,7));//打印 相等
		
	}

2、注意事项

​ 一、不可达语句:(报错)

​ 1.return的后面出现的语句,叫做不可达语句
​ 2.break后
​ 3.死循环后的代码
​ 4.continue
​ 5.while(false)–>

二、兼容类型

​ 1.实参的数据类型<=型参的数据类型
​ 2.接收返回值的类型>=方法的返回值类型>=return后数据的类型

3、方法的重载

​ 定义:在一个类中 多个方法名相同但是参数列表不同(个数不同、类型不同、顺序不同)

​ 唯一用来区分不同方法的是: 方法名+参数列表;

​ 注意:

​ 方法的重载和修饰符的无关
​ 方法的重载和有无反回值无关
​ 方法的重载和返回值类型无关
​ 方法的重载和参数的名字无关

当一个同一个方法重复使用,但仅仅参数列表不同那么就可以使用方法的重载

例如:
//求2个整数的和
	public static int getSum(int a,int b){
		System.out.println("int  int");
		System.out.println(a+b);
		return 1+2;
	}

	private static String getSum(int a,int b){
		System.out.println("int  int");
		System.out.println(a+b);
		return "";
	}
	
	//求三个整数的和
	public static void getSum(int a,int b,int c){
		System.out.println("int  int int");
		System.out.println(a+b+c);
	}
	
	//求两个小数的和
	public static void getSum(double d1,double d2){
		System.out.println("double double");
		System.out.println(d1+d2);
	}
	//求三个小数的和
	public static void getSum(double d1,double d2,double d3){
		System.out.println("double double double");
		System.out.println(d1+d2+d3);
	}

//调用getSum方法时会根据你实参的类型自动匹配对应的方法

4、方法的递归

​ 递归就是方法内部自己调用自己的方法

缺点: 运行效率低、容易出现内存溢出 。不推荐使用,了解即可。

public static void main(String[] args){
		System.out.println(test(5));
	}
	
	//阶乘  //根据传入的实参不同计算不同的阶乘
	public static int test(int i){
		if(i==1){
			return 1;
		}
		return i*test(i-1);
	}	
	
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值