文章目录
一,数据类型的转化
~~~~~~ 在Java程序中要求参与计算的数据,必须保持数据类型的一致,当数据不一致的时候就会发生数据类型的转换。数据类型转换有自动转换(影式转换)和强制转换。
1,自动转换
定义
~~~~~~ 将取值范围小的数据类型转换成取值范围大的数据类型
遵循的原理
byte < short / char < int < long < float < double
注意事项
~~~~~~
1,在计算机运算过程中,会自动找到最高的数据类型,然后把其他的数据类型转化为表达式中最高的数据类型。
~~~~~~
2,对于byte char short 这三种数据类型来说,只要在他的取值范围内,赋值值不用转换,但是在其运算时要转换成int来运算。
~~~~~~
3.任何浮点类型不管占用多少个字符,都比整数类型容量大
2,强制转化
定义
~~~~~~ 强行将数据类型范围大的变量转换成范围小的变量
格式
~~~~~~ 范围小的数据类型 变量 = (范围小的数据类型) 变量
注意事项
~~~~~~
1,强制转换类型可能会导致数据的丢失
~~~~~~
2,浮点型强制转换为整数型会直接导致小数部分丢失
案例分析
public class text04 {
public static void main(String[] args) {
//byte转换成int
byte a=19;
int b=a;
System.out.println(b);
//double转换成int
int a1=0;
double b1=3.12;
a1=(int)b1;
System.out.println(a1);//3
byte c=4;
short c1=7;
int d=c+c1;
System.out.println(d);
}
}
运算符
1,定义
~~~~~~ 对变量进行操作的符号
2,算数运算符
| 符号 | 作用 | 说明 |
| — | — | — | — |
| + | 加 | 如:2+3=5 |
| - | 减 | 如:8-7=1 |
| * | 乘 | 如:2*3=6 |
| / | 除 | 在Java中两个整数相除商还是整数 如:5/2=2 |
注:两个整数相除商还是整数,因为最高数据类型为整数型
案例分析
public class text05 {
public static void main(String[] args) {
//需求:
//输出619的个位数,十位数,百位数
int s = 619;
int a = s % 10;
int b = s / 10 % 10;
int c = s / 100;
System.out.println("619的个位数是:" + a);
System.out.println("619的十位数是:" + b);
System.out.println("619的百位数是:" + c);
}
}
import java.util.Scanner;
public class text06 {
public static void main(String[] args) {
// Scanner导包
//求输入的两个整数之积
System.out.println("请输入一个整数a");
int a = new Scanner(System.in).nextInt();
System.out.println("请输入一个整数b");
int b = new Scanner(System.in).nextInt();
int c = a * b;
System.out.println("输入的两个整数之积为:" + c);
}
}
public class text07 {
public static void main(String[] args) {
//java运算符+的案例
int a=10;
System.out.println("ab"+a);//ab10
System.out.println('a');//a
System.out.println('a'+a);//107
System.out.println('a'+"ab");//aab
System.out.println('a'+""+a);//a10
}
}
分支结构
1,定义
~~~~~~ 程序在运行的过程中,根据不同的条件执行不同的语句
2,if结构
if(条件表达式){
~~~~~~~~~~~~~~~~~
满足条件,执行程序
}
3,if…else结构
if(条件表达式){
~~~~~~~~~~~~~~~~~
满足条件,执行程序1
}else{
~~~~~~~~~~~~~~~~~
不满足条件,执行程序2
}
案例分析
import java.util.Scanner;
public class text08 {
public static void main(String[] args) {
//输入一个整数,判断它是奇数还是偶数
System.out.println("请输入一个整数:");
int number = new Scanner(System.in).nextByte();
int a = number % 2;
if (a == 1) {
System.out.println("它是奇数");
} else {
System.out.println("它是偶数");
}
}
}
4,if…else if结构(嵌套结构)
if(条件表达式1){
~~~~~~~~~~~~~~~~~
满足条件1,执行程序1
}else if(条件表达式2){
~~~~~~~~~~~~~~~~~
满足条件2,执行程序2
}else if(条件表达式3){
~~~~~~~~~~~~~~~~~
满足条件3,执行程序3
}else{
~~~~~~~~~~~~~~~~~
以上条件都不满足,执行程序4
}
案例分析
import java.util.Scanner;
public class text09 {
public static void main(String[] args) {
//输入一个整数,判断它是正数,负数或者是零
System.out.println("请输入一个整数:");
int number =new Scanner(System.in).nextInt();
if (number>0){
System.out.println("它是正数");
}else if(number==0){
System.out.println("它是零");
}else{
System.out.println("它是负数");
}
}
}
5,switch case语句
1.定义
在Java中,switch case语句主要是用来判断一个变量与一系列中某个值是否相等,每个值称为一个分支。
2,语法形式
switch(表达式){
~~~~~~
case 值1:
~~~~~~~~~~~~~~
语块1;
~~~~~~~~~~~~~~
break;
~~~~~~
case 值2:
~~~~~~~~~~~~~~
语块2;
~~~~~~~~~~~~~~
break;
~~~~~~
case 值3:
~~~~~~~~~~~~~~
语块3;
~~~~~~~~~~~~~~
break;
~~~~~~~~
…
~~~~~~
case 值n:
~~~~~~~~~~~~~~
语块n;
~~~~~~~~~~~~~~
break;
~~~~~~
default:
~~~~~~~~~~~~~~
语块n+1;
~~~~~~~~~~~~~~
break;
}
注意事项
~~~~~~
1,switch语句的变量类型可以是:byte. short. int 或 char。从Java SE 7开始,switch支持字符串String类型了,同时case标签必须为字符串常量或字面量。
~~~~~~
2,case语句中值的数据类型必须与变量的数据类型相同,而且只能是常量或字面量
案例分析
public class text10 {
public static void main(String[] args) {
int x=2;
switch (x){
case 0:
System.out.println(0);
break;
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
default:
System.out.println("default");
}
}
}
public class text11 {
public static void main(String[] args) {
//case穿透案例
//如果switch语句中不写break,从成立的那个case一直穿透到最后
// 星期一 写代码
// 星期二 看电影
// 星期三 打球
// 星期四 爬山
// 星期五 学习
// 周 末 没有计划
int day = 4;//表示星期三
switch (day){
case 1:
System.out.println("写代码");
case 2:
System.out.println("看电影");
case 3:
System.out.println("打球");
case 4:
System.out.println("爬山");
case 5:
System.out.println("学习");
default:
System.out.println("没有计划");
//输出结果:
// 爬山
// 学习
// 没有计划
}
}
}
扩展:case并列
~~~~~~
分支上的值多种情况下:
~~~~~~~~~~~~
case 1: case 2: … case n
~~~~~~~~~~~~
只要满足其中一个就执行对应的程序