数据类型中补充的几个小问题
- 在定义long或者float类型变量的时候,要加L或者f。
- 整数默认是int类型,浮点数默认是double。
- byte,short在定义的时候,他们接收的其实是一个int类型的值。
- 数据类型转换之默认转换 byte,short,char--int--long--float--double 问题:long:8个字节;float:4个字节。A:它们底层的存储结构不同。B:float表示的数据范围要比long的范围大。
- Java语言中的字符char可以存储一个中文汉字?能;因为Java语言中的字符占两个字节
算术运算符
1 package com.itheima.demo01;
2 /*
3 * 运算符
4 * 就是对常量和变量进行操作的符号
5 *
6 * 注意事项:
7 * A:整数相除只能得到整数,如果相得到小数,必须把数据变化为浮点数类型
8 * B:/获取的是操作的商,%获取的是操作的余数
9 */
10 public class OperatorDemo {
11 public static void main(String[] args) {
12 //定义变量
13 int x = 3;
14 int y = 4;
15
16 System.out.println(x+y);
17 System.out.println(x-y);
18 System.out.println(x*y);
19 System.out.println(x/y);//整数相除只能得到整数
20 //结果:7;-1;12;0;
21 //我就想得到小数,该怎么办?
22 //只需要把操作的数据中任意的一个数据变为浮点数
23 System.out.println(x*1.0/y);//0.75
24
25 //%的应用
26 System.out.println(x%y);//3 得到的是余数
27 }
28 }
1 package com.itheima.demo01;
2 /*
3 * ++ --运算符使用
4 * 单独使用:放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
5 * 参与运算使用:放在操作数前面,先自增或者自减,然后再参与运算
6 * 放在操作数后面,先参与运算,再自增或者自减
7 *
8 * 作用:就是对变量进行自增1或者自减1。
9 */
10 public class OperatorDemo2 {
11 public static void main(String[] args) {
12 //定义变量
13 int x = 3;
14 int y = 4;
15
16 //单独使用
17 //x++;
18 //y--;
19 ++x;
20 --y;
21 System.out.println("x:"+x+",y:"+y);//x:4,y:3
22 System.out.println("---------------------");
23
24 //参与运算使用
25 int a = 3;
26 int b = 4;
27
28 int c = a++;
29 int d = b--;
30 System.out.println(a);//4
31 System.out.println(b);//3
32 System.out.println(c);//3
33 System.out.println(d);//4
34
35 }
36 }
1 package com.itheima.demo01;
2
3 public class OperatorTest {
4 public static void main(String[] args) {
5 int a = 10;
6 int b = 10;
7 int c = 10;
8
9 a = b++; //a=10 b=11 c=10
10 c = --a; //a=9 b=11 c=9
11 b = ++a; //a=10 b=10 c=9
12 a = c--; //a=9 b=10 c=8
13
14 System.out.println(a);
15 System.out.println(b);
16 System.out.println(c);
17 }
18 }
1 package com.itheima.demo01;
2
3 public class OperatorTest2 {
4 public static void main(String[] args) {
5 int x = 4;
6 int y = (x++)+(++x)+(x*10);
7 System.out.println(x);//6
8 System.out.println(y);//70
9 }
10 }
1 package com.itheima.demo01;
2 /*
3 * +的用法
4 * 1.加法
5 * 2.正号
6 * 3.字符串链接符
7 */
8 public class OperatorDemo3 {
9 public static void main(String[] args) {
10 //定义变量
11 int x = 3;
12 int y = 4;
13
14 //加法
15 System.out.println(x+y);
16 //正号
17 System.out.println(+y);
18
19 System.out.println('a');
20 System.out.println('a'+1);
21
22 //字符串连接
23 System.out.println("hello"+'a'+1);
24 System.out.println('a'+1+"hello");
25 /*
26 * 7
27 4
28 a
29 98
30 helloa1
31 98hello
32 */
33 }
34 }
赋值运算符
- 基本的赋值运算符号:=
- 扩展的赋值运算符号:+= -= *= /= %=
1 package com.itheima.demo01;
2 /*
3 * 赋值运算符
4 */
5 public class OperatorDemo4 {
6 public static void main(String[] args) {
7 //定义变量
8 int x = 10;
9 System.out.println("------------");
10
11 //定义一个变量
12 //+= 把左边和右边做加法,然后赋值给左边
13 int y = 10;
14 y+=20;
15 System.out.println(y);
16 }
17 }
1 package com.itheima.demo01;
2 /*
3 * 面试题
4 * short s = 1; s=s+1;
5 * short s =1;s+=1;
6 *
7 * 扩展的赋值运算符其实隐含了一个强制类型转换。等价于s = (s的数据类型)(s+1);
8 */
9 public class OperatorTest3 {
10 public static void main(String[] args) {
11 //short s = 1;
12 //s=s+1;
13 //System.out.println(s);
14
15 short s = 1;
16 s+=1;//好像是s = s+1;
17 System.out.println(s);
18 }
19 }
比较运算符
1 package com.itheima.demo01;
2 /*
3 * 比较运算符
4 */
5 public class OperatorDemo5 {
6 public static void main(String[] args) {
7 int x = 3;
8 int y = 4;
9 int z = 3;
10
11 System.out.println(x==y);//false
12 System.out.println(x==z);//true
13 System.out.println("-----------");
14 System.out.println(x != y);//true
15 System.out.println(x>z);//false
16 System.out.println(x>=y);//false
17 System.out.println(x<y);//true
18 System.out.println(x<=y);//true
19 System.out.println("-----------");
20 }
21 }
逻辑运算符
- 逻辑运算符用于连接布尔类型表达式,在Java中不可以写出3<x<6,应该写成x>3&x<6.
- "&"和"&&"的区别:单&时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算,如果左边为假,那么右边就不参与运算;|和||的区别同理,双或时,左边为真,右边不参与运算。
- 异或(^)与或(|)的不同之处:当左右都为true时,结果为false。
1 package com.itheima.demo01;
2 /*
3 * 逻辑运算符
4 */
5 public class OperatorDemo6 {
6 public static void main(String[] args) {
7 int a = 3;
8 int b = 4;
9 int c = 5;
10
11 //& 有false则false
12 System.out.println((a>b)&(a>c));//false & false = false
13 System.out.println((a>b)&(a<c));//false & true = false
14 System.out.println((a<b)&(a>c));//ture & false = false
15 System.out.println((a<b)&(a<c));//true & ture = true
16
17 //|逻辑或 有true则true
18 System.out.println((a>b)|(a>c));//false & false = false
19 System.out.println((a>b)|(a<c));//false & true = false
20 System.out.println((a<b)|(a>c));//ture & false = false
21 System.out.println((a<b)|(a<c));//true & ture = true
22
23 //^逻辑异或 相同则false 不同则true
24 System.out.println((a>b)^(a>c));//false & false = false
25 System.out.println((a>b)^(a<c));//false & true = false
26 System.out.println((a<b)^(a>c));//ture & false = false
27 System.out.println((a<b)^(a<c));//true & ture = true
28
29 //!逻辑非 非false则true
30 System.out.println(!(a>b));//!false = true
31 System.out.println(!(a<b));//!true = false
32 }
33 }
1 package com.itheima.demo01;
2 /*
3 * 逻辑运算符
4 */
5 public class OperatorDemo7 {
6 public static void main(String[] args) {
7 int a = 3;
8 int b = 4;
9 int c = 5;
10
11 //&& 双与
12 System.out.println((a>b)&&(a>c));//false & false = false
13 System.out.println((a>b)&&(a<c));//false & true = false
14 System.out.println((a<b)&&(a>c));//ture & false = false
15 System.out.println((a<b)&&(a<c));//true & ture = true
16 System.out.println("----------------------------");
17
18 }
19 }
位运算符
1 package com.itheima.demo01;
2 /*
3 * 位运算符
4 * & | ^ ~
5 * >> << >>>
6 * 注意:
7 * 要做位运算,首先要把数据转换位二进制
8 */
9 public class OperatorDemo8 {
10 public static void main(String[] args) {
11 int a = 3;
12 int b = 4;
13
14 System.out.println(3&4);
15 System.out.println(3|4);
16 System.out.println(3^4);
17 System.out.println(~3);
18 System.out.println("----------------------------");
19 /*
20 * 0
21 7
22 7
23 -4
24 */
25 }
26 }
1 package com.itheima.demo01;
2 /*
3 * ^ 的特点:一个数据对另一个数据位异或两次,该数本身不变
4 */
5 public class OperatorDemo9 {
6 public static void main(String[] args) {
7 int a = 3;
8 int b = 4;
9
10 System.out.println(a^b^b);//3
11 System.out.println(a^b^a);//4
12
13 }
14 }
1 package com.itheima.demo01;
2 /*
3 * 面试题
4 * 请自己实现两个整数变量的交换
5 */
6 public class OperatorTest4 {
7 public static void main(String[] args) {
8 int a = 10;
9 int b = 20;
10
11 //方式1:使用第三方变量
12 // int c = a;
13 // a = b;
14 // b = c;
15 // System.out.println("a:"+a+",b:"+b);
16 // System.out.println("------------");//a:20,b:10
17
18 //方式2:用位异或实现
19 //左边 aba
20 //右边 a^b
21 a = a^b;
22 b = a^b;
23 a = a^b;
24
25 System.out.println("a:"+a+",b:"+b);//a:20,b:10
26 }
27 }
三目运算符
1 package com.itheima.demo01;
2 /*
3 * 三目运算符
4 */
5 public class OperatorDemo10 {
6 public static void main(String[] args) {
7 int x = 100;
8 int y = 200;
9
10 int z = ((x>y)?x:y);
11 System.out.println(z);//200
12 }
13 }
1 package com.itheima.demo01;
2 /*
3 * 练习:
4 * 获取两个整数中的最大值
5 * 获取三个整数中的最大值
6 * 比较两个整数是否相同
7 */
8 public class OperatorTest5 {
9 public static void main(String[] args) {
10 //获取两个整数中的最大值
11 int x = 100;
12 int y = 200;
13 int max = (x>y?x:y);
14 System.out.println(max);
15 System.out.println("------");
16 //获取三个整数中的最大值
17 int a = 10;
18 int b = 30;
19 int c = 20;
20 //分两步
21 //A.先比较ab的最大值
22 //B.拿ab的最大值再和c进行比较
23 int temp = ((a>b)?a:b);
24 int max1 =(temp>c?temp:c);
25 System.out.println(max1);
26 }
27 }
键盘录入数据:
- 我们目前在写入程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改变为键盘录入,提高程序的灵活性。
- 如何实现键盘录入数据呢?导包Scanner 创建对象Scanner sc = new Scanner(System in);接收数据 int x = sc.nextInt();
1 package com.itheima.demo01;
2
3 import java.util.Scanner;
4
5 /*
6 * 键盘录入
7 */
8 public class OperatorDemo11 {
9 public static void main(String[] args) {
10 //创建键盘录入数据对象
11 Scanner sc = new Scanner(System.in);
12
13 System.out.println("请输入一个数据:");
14 int x = sc.nextInt();
15
16 System.out.println("你输入的数据是:"+x);
17 }
18 }
111
流程控制语句
- 在一个程序执行的过程中,个条语句的执行顺序对程序对结果是有直接影响对,也就是说程序的流程对运行结果有直接的影响,所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能
- 流程控制语句分类
- 顺序结构
- 选择结构
- 循环结构
顺序结构
1 package com.itheima.demo02;
2 /*
3 * 顺序结构:从上往下,以此执行
4 */
5 public class ShunXuJieGouDemo {
6 public static void main(String[] args) {
7 System.out.println("程序开始了");
8 System.out.println("程序结束了");
9 }
10 }
选择结构
package com.itheima.demo02;
/*
* 需求:根据用户的给定数值,现实该数值对应的星期。
*/
public class IfTest {
public static void main(String[] args) {
//1.定义变量,记录数据
int week = 9;
//2.通过判断结构语句对该变量进行判断
if (week == 1)
// 3,根据不同的条件,通过输出语句显示不同的结果。
System.out.println(week + "对应的是星期一");
else if (week == 2)
System.out.println(week + "对应的是星期二");
else if (week == 3)
System.out.println(week + "对应的是星期三");
else if (week == 4)
System.out.println(week + "对应的是星期四");
else if (week == 5)
System.out.println(week + "对应的是星期五");
else if (week == 6)
System.out.println(week + "对应的是星期六");
else if (week == 7)
System.out.println(week + "对应的是星期日");
else
System.out.println(week + "没有对应的星期");
}
}