1基本数据类型转换
由小到大:byte--short--char--int--long--float--double
1字节 2 2 4 8 4 8
public class Demo1 { public static void main(String[] args) { // 容量小转容量大,则直接进行转换 byte a=127; int b=a; long c=b; float d=c; System.out.println(d); // 容量大转容量小,加强制转换符,但可能出现精度降低或溢出 float x=10.5f; long y=(long)x; System.out.println(y); double gg=a+x+5.5; char z = 'a'; //97 char也是可以参与转换的 int zc = z; byte aa = 10; byte bb = 10; byte cc = (byte)(aa+bb);//byte short,char 在混合运算时,都是上升为int类型 double dd = x + a + 5.5; //混合运算时,小类型默认都会转为最大的类型 } }
2运算符
public class Demo2 { /*算术运算符 +:加法运算;字符串连接 —:数值减法 *:数值乘法 /:数值除法 %:取余,数值运算 ++:自增 --:自减 */ public static void main(String[] args) { /*int a=10; int b=1; // 单引号表示字符 char c='a'; // 双引号表示字符串 String d="d"; System.out.println(a+b); System.out.println(a+c); System.out.println(a+d); */ int m=5; System.out.println(++m); System.out.println(m++); } }
/*比较运算符 <,>,<=,>=,==,!= !=,==可以用于引用类型之间的比较*/
赋值运算符
+=: a+=5 //a=a+5 可以隐式的进行数据类型转换
short a=10; a+=5; a=a+5;//short+5(int),类型不匹配
逻辑运算符: 符号的左右是逻辑值 & -- 逻辑与 &&-- 逻辑与(短路与)
& -- 逻辑与 所有的表达式都返回true,结果就是true, 其中有一个为false,结果就是false 逻辑与第一个表达式结果为false时,后面的表达式仍会执行
&&-- 逻辑与(短路与)所有的表达式都返回true,结果就是true,其中有一个为false,结果就是false && 第一个表达式为false 后面的表达式就不会执行
public class Demo5 { /*逻辑运算符 &,(逻辑与) &&(短路与) | -- 逻辑或 || -- 逻辑或(短路或) !---逻辑非 ^ -- 逻辑异或*/ /*public static void main(String[] args) { int a = 10; int b = 5; int c = 8; System.out.println(a>b & b<c);// true & true = true System.out.println(a>b & b>c);// true & false =false System.out.println(a<b & ++b>c);// false & false =false System.out.println(b);//6 System.out.println(a>b && b<c);// true && true = true System.out.println(a>b && b>c);// true && false =false System.out.println(a<b &&(++b>c));// false && false =false System.out.println(b);//6 }*/ /*public static void main(String[] args) { int a = 10; int b = 5; int c = 8; System.out.println(a>b | b<c);// true | true = true System.out.println(a<b | b>c);// false | false =false System.out.println(a>b | ++b>c);// true | false true System.out.println(b);//6 System.out.println(a>b || b<c);// true || true = true System.out.println(a<b || b>c);// false || false =false System.out.println(a>b || ++b>c);// true || false true System.out.println(b);//6 }*/ /* public static void main(String[] args) { int a = 10; int b = 5; int c = 8; System.out.println(!(a>b)); }*/ /*public static void main(String[] args) { int a = 10; int b = 5; int c = 8; System.out.println(a>b ^ b<c); //true ^ true = false System.out.println(a>b ^ b>c); //true ^ false = true System.out.println(a<b ^ b>c); //false ^ false = false } */ }
条件运算符
三目运算符
(条件表达式)? 表达式1:表达式2; 条件表达式结果为true,运算后的结果是表达式1; 为false,运算后的结果是表达式2;
位运算
位运算: 指的是对数值的二进制位进行运算 << 左移 >> 右移 >>> 无符号右移 & | ^ ~
public class Demo6 { public static void main(String[] args) { int a = 4; System.out.println(a << 1);// 0000 0100 左移1位 0000 1000 相当于乘2 System.out.println(a >> 1);// 0000 0100 右移一位 0000 0010 相当于除2 int b = -6; System.out.println(b >> 1);//>> 1000 00110 1000 00011 带符号的移位 负数补1 正数补0 System.out.println(b >>> 1);//>>> 1000 0110 1000 0011 无符号的移位 无论正负都补0 } }
3.控制台输入
import java.util.Scanner; public class ScannerDemo{ public static void main(String[] args) { //通过nwe关键字创建出一个Scanner类的实例(对象),可以直接使用实例 Scanner scanner = new Scanner(System.in); System.out.println("请输入用户名"); String username=scanner.next();//next(),程序会阻塞,等待用户输入数据,输入后按回车继续执行 System.out.println(username); System.out.println("请输入年龄"); int age=scanner.nextInt(); System.out.println(age); } }
4记账循环语句
public class JzDemo { public static void main(String[] args) { int money =1000; String info =""; info +="支出:物业费"+100+"\n"; info +="收入:工资"+500+"\n"; System.out.println(info); } }
import java.util.Scanner; public class JzDemo { public static void main(String[] args) { int money = 10000; String info = "";//记录支出和收入 out:while(true){ System.out.println("家庭收支记账软件"); System.out.println("1.收支明细"); System.out.println("2.登记收入"); System.out.println("3.登记支出"); System.out.println("4.退出"); System.out.println("请选择1-4选项操作"); Scanner scanner =new Scanner(System.in); int item = scanner.nextInt(); switch (item){ case 1: System.out.println(info); break; case 2: System.out.println("输入收入金额"); int shuru = scanner.nextInt(); money += shuru; System.out.println("输入说明"); String desc = scanner.next(); info +="收入:"+desc+" "+shuru+"\n"; break; case 3: System.out.println("输入支出金额"); int zhichu = scanner.nextInt(); money -= zhichu; System.out.println("输入说明"); String desc1 = scanner.next(); info +="支出:"+desc1+" "+zhichu+"\n"; break; case 4: break out; default: System.out.println("选项不匹配"); } } } }
5循环嵌套九九乘法表
public class PrintStream { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+" "); } System.out.println(); } } }
结束外层循环
如果需要从多层循环跳出,则需要使用标签,定义一个标签,如label, 然后在需要跳出的地方,用break label就可以