一.原码 补码 反码
-
负数:1000 0001 原码
1111 1110 反码:符号位不变,其他位取反
1111 1111 补码=反码+1 -
正数的原码 反码 补码都是它自己
二.数据类型
- 整型 int 4字节 32位 -2^ 31——2^ 31-1 【直接赋值数据不能超过此范围】
- 长整型 long 8字节 64位 -2^ 63——2^63-1 long a = 10L;
- 短整型 short 2字节
- 字节类型 byte 1字节
- 双精度浮点类型 double 8字节
- 单精度浮点类型 float 4字节 float f = 12.5f;
- 字符类型 char 2字节 char ch = ‘g’;【单引号赋值】
- 布尔类型 boolean true/false
三.循坏
while for do while
1. while循环
例1:求1-5的阶乘的和
public static void main3(String[] args) {
int j = 1;
int n = 5;
int sum = 0;
while(j <= n){
int i = 1;
int ret = 1;
while (i <= j){
ret = ret * i;
i++;
}
sum = sum+ret;
j++;
}
System.out.println(sum);
}
2. continue 结束本趟循坏【中止】
break 结束循环
例2:1-100内 既能被3整除也能被5 整除的数字
public static void main(String[] args) {
int i = 1;
while(i <= 100){
if(i % 15 != 0){
i++;
continue;
}
System.out.println(i);
i++;
}
}
3. for循坏
for(表达式1;表达式2;表达式3){
语句块;
}
执行顺序: 表达式1(循环条件初始化,只执行一次)— 表达式2— 语句块— 表达式3
表达式2—语句块—表达式3
例3:求1-5的阶乘的和 【for循环嵌套】
public static void main(String[] args) {
int sum = 0;
for (int j = 1; j <= 5; j++) {
int ret = 1;
for (int i = 1; i <= j ; i++) {
ret = ret * i;
}
sum += ret;
}
System.out.println(sum);
4.do while循环(使用较少)
do{
语句块
}while();
先执行语句块即循环语句,再判定循环条件
至少会被执行一次,没把握的情况,慎用!
四.输入和输出
例4:猜数字游戏
public static void main(String[] args) {
Random random = new Random();//固定写法
int randNum = random.nextInt(100)+1;//1-100生成随机数,[1,101)
Scanner scan = new Scanner(System.in);//固定写法
while(true){
System.out.println("请输入你想要猜的数字[1-100]:");
int num = scan.nextInt();//读入一个整数
if(num < randNum){
System.out.println("低了!");
}else if(num == randNum){
System.out.println("找到了!");
break;//非常重要,一定要有!
}else{
System.out.println("高了!");
}
}
结果:
Random random = new Random(111);//固定写法
int randNum = random.nextInt(100)+1;//1-100生成随机数,[1,101)
Scanner scan = new Scanner(System.in);//固定写法
注:new Random有了参数111,生成的1-100内的数就不随机了,属于伪随机!