周小结

小结

java语言数据类型
基本类型:四类八种整形( byte ,shout, int ,long) ,浮点型(float ,double) ,字符型(char) ,布尔类型(boolean)
引用数据类型:字符串,数组,对象
类型转换
强制类型转换:变量参与运算,会提升数据类型,常量计算是看结果是否超出了类型范围再决定转换
eg:int a =3;
int b = 4;
byte c = a + b ; 错误,等式右边的的 a , b 会提升为int类型, c 是byte类型,int转byte需要强制转换,byte c = (byte) (a + b );
byte d = 3 + 4; 正确,等式右面的和是 7 ,在byte的范围内,因此不需要转换类型。
关键字:被java赋予了特殊含义的单词,eg:public, class ,static ,void
标识符:就是给类,接口,方法,变量起名字时使用的字符序列。
组成规则:标识符包含英文26个字母(区分大小写) 0 - 9数字 $(美元符号) _(下划线)
注意事项:不能以数字开头,不能是java关键字,区分大小写
异或(^)特点:相同为false,不同为true
位异或特点:一个数据被另一个数据位异或偶数次还是它本身
移动符号
<<(左移):将该符号左边的数据本身乘以2的移动次数幂
eg:3 << 2 ; ==> 3 * (22) = 12
<<(右移):将该符号左边数据本身除以2的移动次幂
eg:24 >> 2 ; ==> 24/(2
2) = 6
以最有效的方式写出2 乘以8的结果
2 << 3 ; ==>就是 2 * (2 * 2 * 2) = 16
三元运算符
格式:(表达式) ? 执行true的结果 :执行false的结果 ;
比较两个数中的最大值:

 int max = (a > b)? a : b ;

如果括号中条件成立就输出 a 否则就输出 b
求三个数中的最大值:

int max = (x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z);

数据录入(Scanner)的基本使用:

//导包
import java.util.Scanner;
//创建一个对象
Scanner sc = new Scanner(System.in);
//接受数据
int x = sc.nextInt();

java中的流程控制语句:顺序结构语句 选择结构语句 循环结构语句
if格式与三元运算符的区别
(1)三元运算符连接的是两个数据的数据值(针对数据值来进行比较或者判断)
(2)if格式2是一种流程控制语句:范围要比三元运算符大,它不仅仅可以判断两个数据数据值还可以操作具体语句
(3)能够使用if格式2实现的不一定能够使用三元运算符;但是如果能够三元运算符实现的一定能够使用if格式2 (在开发中,针对业务逻辑判断还是使用if格式2)
switch语句格式

switch(表达式){
	case1 :
		语句 1breakcase2 :
		语句2break;
	dafault :
		语句3}

switch的执行流程:switch后面的表达式需要和case值进行匹配,如果值1匹配成功就执行语句1遇见break就结束switch循环,如果值2 不匹配就一直往下找,直到找到能匹配成功的然后输出语句,遇见break结束switch循环,如果一直找不到匹配的值就执行default语句遇见break结束
注意事项:
(1)default放在语句中不影响它的执行流程,但如果放到句中必须带上break,否则会造成case穿透(也就是会执行到下一个break才停止)
(2)switch语句的结束条件:遇见break或者程序默认执行到末尾
(3)case后面的值只能是常量,不能是变量
eg:

class SwitchTest{
	public static void main(String[] args){
		int x = 2 ;
		int y = 3 ;
		switch(x){
			default:	  //当前case后面的值都和switch中的表达式匹配,但是没有break就会执行到下一个语句;
				y++ ;
			case 2 :
				y ++ ;	 //3+1=4		遇见break,程序默认执行到末尾
			case 4:
				y ++ ;   //4+1 = 5
		}
		int a = 2 ;
		int b = 3 ;
		switch(a){
			default:	//当前case后面的值都和switch中的表达式不匹配,才执行default语句;
				b++ ; //3+1 = 4 ;	
			case 3 :
				b ++ ;	 //4+1 = 5
				break ;      //程序执行到这个break而终止
			case 4:
				b ++ ; 
		}
		System.out.println("b:"+b);
		int m = 2 ;
		int n = 3 ;
		switch(m){
			default:
				n ++ ;
				break ;
			case 2:
				n++;       //跳转值2执行,但是没有break那么就将语句执行完毕再结束
			case 3:
				n++;
		}
		System.out.println("n:"+n); //5
	}

}

for循环

格式

for(初始化语句;条件表达式;步长语句){
	循环语句;
}

for语句输出水仙花数(所谓水仙花数就是100-1000之间的三位数并且三位数的每一位的3次方之和等于原来那个数eg:153 = 111+555+333)

class ShuiXianHua{
	public static void main(String[] args){
		System.out.println("水仙花数有:");
			for(int i = 100 ; i < 1000 ; i++){
				int ge = i % 10 ;
				int shi = i / 10 % 10 ;
				int bai = i / 10 / 10 % 10 ;
				int sum = ge * ge * ge + shi * shi * shi + bai * bai * bai ;
				if (i == sum){
					System.out.println(i);
		}
	}

}

while循环

格式:

初始化语句;
while(条件表达式){
	循环体语句;
	步长语句;

用while执行猜数游戏

//导包
import java.util.Scanner;
class Guess{
	public static void main(String[] args){
		//java.lang.Math类:数学运算的类 
	   //方法:获取随机数的方法:public static double random() 取值范围:[0.0,1.0)
		//让电脑自动生成一个数,由于random()的取值范围是[0.0,1.0)所以要求1-100之间的
		//数就需要给random()乘 10 再加 1 
		int number = (int)(Math.random() * 100 + 1);
		while(true ){
			//创建电脑输入对象
			Scanner sc = new Scanner(System.in);
			//提示输入并接受数据
			System.out.println("请输入一个数据");
			int x = sc.nextInt();
			//判断录入的数据与自动生成数据的大小
			if (number > x){
				System.out.println("小了,您录入的数据小了");
			}else if(number < x ){
				System.out.println("大了,您输入的数据大了");
			}else if(number == x){
				System.out.println("恭喜您,猜中了");
				//如果猜中就推出循环,结束游戏,如果没猜中就一直猜
				break;
			}
		}
	
	}
}
}

while循环和for循环的区别
(1)两种循环格式不一样
while循环:从内存角度考虑,while循环结束了,依然可以访问循环中的变量(消耗内存空间)
for循环:从内存角度考虑,不能访问变量(变量的生命周期随着for循环的结束而结束)
(2)从应用角度来分析
一般如果明确循环次数或者循环的范围,优先选择for循环,如果不明确循环次数或者不明确循环范围时就使用while循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值