一:进制转换:
1. 十进制转二进制
连除到取余例十进制18转化二进制
2.二进制转化为十进制
按权求和
1 0 0 1 0 .......(二进制)
2^4*1 + 2^3*0 + 2^2*0 + 2^1*1+ 2^0*0 =18(十进制)
例:
十进制转化至 二进制 八进制 十六进制
分别调用方法 toBinaryString toOctalString toHexString
public class Demo01 { public static void main(String[] args) { // 10机制转2进制 返回的是字符串类型 String str1 = Integer.toBinaryString(18); System.out.println(str1); // 10机制转8进制 返回的是字符串类型 String str2 = Integer.toOctalString(31); System.out.println(str2); // 10机制转16进制 返回的是字符串类型 String str3 = Integer.toHexString(12); System.out.println(str3); } }
二 数据类型及相互转化:
分类:数据类型(用来存储数据 系统会在内存里开辟一块空间用来存储数据)
1.基本数据类型:
- 整数型(byte short int long)
byte 一个字节 存储的数据占一个字节 8个二进制位表示 0000 0000 可以表示2^8个数字 取值范围是(-128 --127)
short 占2个字节 短整型
int 整形 占4个字节(最常用)
long 长整形 占8个自己
- 小数型(float double)
float 占4个字节
double 占8个字节
- 字符型
- 字符串型
例:
public static void main(String[] args) { //常量:在整个程序运行中不能 修改的量; System.out.println(10); //声明一个变量---存储数据 //数据类型+变量名 = 初值; byte b = 10; System.out.println(b); short s = 10; int a = 10;//定义一个整形变量初值为10; long m = 10; /* * double 是存储小数的但是赋值一个小数这时系统会进行隐式转化 * 将小的类型转化成大的类型 */ double d = 10; System.out.println(d); //强制类型转换 会丢失数据精度 //声明一个小数系统默认的是double类型. int number = (int)3.14; System.out.println(number); //声明float类型的小数,需要使用标识符f标识 float f =10.0f; System.out.println(f); /* * 特殊类型 字符类型 * 特点:可以和整形相互转换 * 声明字符型使用单引号 */ char ch = 'A'; System.out.println((int)ch);//强转完 打印该字符 在AscII表中对应的值 char ch1 = 97; System.out.println(ch1); // 字符串类型 声明字符串使用双引号 字符串中的+号 相当于连接两个字符串(拼接) String str1 = "八戒"; String str2 = "你来了"; System.out.println(str1 + str2);//八戒你来了 int num1 = 10; System.out.println("num1 =" + num1);//num1=10 int num2 = 12; System.out.println(num1 + num2);//22 //字符串和数字用+号连接时 相当于做字符串的拼接,和字符串相加得到的一定是字符串 System.out.println(str1 + num1 + num2);//八戒1012 }
2.引用数据类型:{ 数组 类 接口}
三 运算符
- 算术运算符 + - * / % ++ --
- 关系运算符 > < >= <= !=
- 逻辑运算符 && || !
例:
public static void main(String[] args) { //取模运算(一般用的最多是对2取余)判断是否为偶数; int n1 = 5 % 10; System.out.println(n1); //除法 //可以借助API文档查出报出的错误 double n2 = 10 / 5; System.out.println("n2=" + n2); //自增运算(++) 和 自减运算(--) //++在前 先自增再进行运算 ++在后 先参与计算再自增 int n3 = 10; // n3++;// ++n3; //相当于n3 = n3+1; System.out.println("n3=" + n3);//11 int n4 = 10; int n5 = n4 + ++n4;//10+11 System.out.println("n4="+n4);//11 System.out.println("n5="+n5);//21 //声明一个boolean 类型的变量 只有true 或false //状态 和 判断 时使用. boolean b = true; System.out.println(!b); int num1 = 10; int num2 = 15; boolean result1 = num1 != num2; System.out.println(result1); //判断两个字符串是否相等 String str1 = "嗯嗯"; String str2 = "啊啊"; boolean result2 = str1.equals(str2); System.out.println(result2);//false //逻辑运算 //逻辑与/或的短路现象 int num3 = 5; int num4 = 6; int num5 = 7; //逻辑与短路现象:一假则假 如果条件一已经不成立那么系统不会执行后面的语句. boolean result3 = (num3 > num4)&&(num3++ > num5); System.out.println("result3 =" + result3);//false System.out.println(num3);//5 //逻辑或的短路现象:一真则真 如果条件一已经成立那么系统不会执行后面的语句. boolean result4 = (num3 < num4)||(num3++ < num5); System.out.println("result4 =" + result4);//true System.out.println(num3);//5 }
四 流程控制
- 顺序结构
- 分支结构
- 循环结构 (for while do while )
2.1 if
if有三种写法
if(){}
if(){}else{}
if(){}else if(){}else{}
2.2 switch
if 用法:
要求:
如果晴天,去爬山,如果下雨,去逛街,再次接收用户的输入*小雨的话,带上伞, * 暴雨的话,穿上雨衣 键盘输入模拟天气
public static void main(String[] args) { System.out.println("输入模拟天气"); Scanner scanner = new Scanner(System.in); String tq = scanner.nextLine(); if (tq.equals("晴天")) { System.out.println(tq + "去爬山"); }else if(tq.equals("下雨")) { System.out.println(tq + "去逛街"); System.out.println("输入雨天天气"); //直接使用之前创建的 Scanner 对象 String tq1 = scanner.nextLine(); if (tq1.equals("小雨")) { System.out.println(tq1 + "带上伞"); }else if (tq1.equals("暴雨")) { System.out.println(tq1 + "穿上雨衣"); } }else { System.out.println("阴天有鬼,不要出门"); }
switch 用法示例:
switch (key) { key:要被匹配的值
case value: value(匹配的值1)
执行语句1
break;
case value: value(匹配的值2)
执行语句2
break;
````` 可以匹配多个值.
default:
如果前面都没匹配上 就执行default
break;
}
要求: 输入一个数 1--打印春天 2--打印夏天 3--打印秋天 4--打印冬天
public static void main(String[] args) { System.out.println("输入一个数"); Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); int num = Integer.parseInt(str); switch (num) { case 1: System.out.println("春天"); break; //跳出switch 语句 case 2: System.out.println("夏天"); break; case 3: System.out.println("秋天"); break; case 4: System.out.println("冬天"); break; default://不管default在什么位置最终都没匹配到case条件就一定会执行default中的语句. System.out.println("嘿嘿嘿"); break; } }
五 三目运算
(判断条件)?值1:值2;
如果满足判断条件 返回值1 否则 返回值2
例:
public static void main(String[] args) { //求两个数的最大值 int num1 = 10; int num2 = 15; int max = 0;//定义一个变量接收三目返回的值 max = (num1>num2)?num1:num2; System.out.println(max); //求两个数的最大值 int num3 = 20; int max2 = max>num3?max:num3; System.out.println("num1 num2 num3 中的最大值" + max2); }
六 while 循环的使用
while (循环条件){循环体}
满足循环条件再运行{}里的语句.
例:打印1-10
public static void main(String[] args) { int i =10; while(i>=1) { System.out.println(i--); } //打印1+2+3+.....+10 int n = 1;//循环增量 int sum=0;//定义一个变量保存和 while (n<=10) { //计算累加的和 sum +=n; n++; } System.out.println(sum); }while循环的循环条件要先定义循环变量 .