Java基础知识(数据类型、运算符、流程)
来源:互联网 发布:淘宝免费模板衣服 编辑:程序博客网 时间:2024/04/25 15:44
数据类型
java中数据类型分为基本数据类型和引用数据类型。
基本数据类型:整数类型(4个):byte、short、int、long
字符类型(1个):char
浮点类型(2个):float、double
布尔类型(1个):boolean
引用数据类型:数组、类、接口
数据类型转换
自动转换:
bytea = 12;//a是byte类型变量
intb = a;//自动类型转换
inta = 123;
doubleb = a;//自动类型转换
chara = ‘男’;
int b = a;//自动类型转换(‘男’以Unicode码保存在电脑中的,此处可以得到他的unicode值)
强制转换:
int a = 12;
byteb = (byte)a; //强制类型转换
doublea = 12.5;
intb = (int)a; //强制类型转换
注意:强制转换可能导致精度丢失或错误结果,所以不可随意滥用。
public class Test1{public static void main(String[] args){int a = 200;byte b = (byte)a;//强制类型转换System.out.println(a+" "+b);//200 -56(200超过byte范围得到错误结果)double m = 12.5;int n = (int)m;//强制类型转换System.out.println(m+" "+n);//12.5 12(int只能保存整数,损失精度)} }
表达式中数据类型的自动提升,当使用二元运算符对两个值进行运算时,两个操作数会转换成通用类型。
如果两个操作数中有一个是double类型,则另一个将会转换成double型;
如果两个操作数中有一个是float类型,则另一个将会转换成float型;
如果两个操作数中有一个是long类型,则另一个将会转换成long型;
否则,两个操作数都转换成int型。
public class Test1{public static void main(String[] args){int a = 10/3;int b = (int)(10/3.0);//强制类型转换double c = 10/3;//自动类型转换double d = 10/3.0;System.out.println(a);//3System.out.println(b);//3System.out.println(c);//3.0System.out.println(d);//3.3333333}}
运算符
算术运算符
+、-、*、/、%(取模、取余)
案例:
public class Test1{public static void main(String[] args){int a = 10;int b = 3;int c1 = a+b;int c2 = a-b;int c3 = a*b;int c4 = a/b;int c5 = a%b;System.out.println(a+"+"+b+"="+c1);//a+b=13System.out.println(a+"-"+b+"="+c2);//a-b=7System.out.println(a+"*"+b+"="+c3);//a*b=30System.out.println(a+"/"+b+"="+c4);a/b=3System.out.println(a+"%"+b+"="+c5);a%b=1}}
自增自减运算符
++(自增)、--(自减)
案例一:
public class Test1{public static void main(String[] args){int a = 10;int b = 10;a++;//a = a+1;++b;//b= b+1;System.out.println("a="+a+",b="+b);//a=11,b=11;}}
关系运算符
>、>=、<、<=、==、!=
注意:==是判断相等,得到布尔值true或false
=是赋值
逻辑运算符
&&(与)、||(或)、!(非)
位运算符
&(与)、|(或)、^(异或)
位运算将两个数转化成二进制再进行运算,
&按位求与,两位都为1才为1
|按位求或,两位有一个为1就为1
^异或,两位不同才为1,两位相同就为0
public class Test1{public static void main(String[] args){int a = 7&5;int b = 7|5;int c = 7^5;System.out.println("a="+a+",b="+b+",c="+c);//a=5,b=7,c=2}}
赋值运算符
=
注意:==是判断相等,得到布尔值true或false
=是赋值
循环结构
while循环
while(循环条件){
代码块/循环体;
}
do…while循环
do{
代码块/循环体;
}while(循环条件);
注意:while与do...while的区别是while先判断在执行,do...while是先执行在判断,do...while最少运行一次
public class Test1{public static void main(String[] args){inti = 101;while(i<=100){System.out.println(i);i++;}}}
运行结果:
没有输出
public class Test1{
public static void main(String[] args){int i = 101;do{System.out.println(i);i++;}while(i<=100);}}运行结果:101
for循环
for(初始化变量;循环条件;循环增量){
循环体;
}
求出1+2+3+……+100=?
public class Test1{public static void main(String[] args){int sum = 0;for(int i = 1;i<=100;i++){sum=sum+i;}System.out.println("1+2+3+...+100="+sum);}}输出九九乘法表
public class Test1{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+"\t");}System.out.println();}}}输出下面图案:
public class Test1{public static void main(String[] args){//上半部分for(int i=1;i<=5;i++){//空格for(int j=1;j<=5-i;j++){System.out.print("");}//*号for(int k=1;k<=2*i-1;k++){System.out.print("*");}//换行System.out.println();}//下半部分for(int i=1;i<=4;i++){//空格for(int j=1;j<=i;j++){System.out.print("");}//*号for(int k=1;k<=9-2*i;k++){System.out.print("*");}//换行System.out.println();}}}循环的控制break、continue
break语句除了可以用在switch语句中,还可以用在循环体中。在循环体中遇见break语句,立即结束循环,跳到循环外,执行循环结构后面的语句。break语句用于结束整个循环。
continue语句用于结束本次循环,即在循环体中遇见continue语句,则循环体中continue语句后面的语句不会执行,接着进行下一次循环的判定。
- Java基础知识(数据类型、运算符、流程)
- Java基础知识(数据类型、标识符、变量、运算符和流程控制语句)
- Java基础知识(数据类型、标识符、变量、运算符和流程控制语句)
- Java基础知识(数据类型、标识符、变量、运算符和流程控制语句)
- 【Java基础知识】数据类型与运算符
- Java:数据类型、变量、运算符、控制流程
- java学习02-java基础知识、基本数据类型、运算符
- Java笔记(1)- Java基础知识、类、对象、运算符、数据类型
- Java基础知识学习二(数据类型及运算)
- java学习_03_标识符、数据类型、运算符、控制流程
- Java语言基础(二)——数据类型、运算符和流程控制语句
- Java序谈之变量,数据类型,运算符,流程控制,三目运算符
- 数据类型、运算符、流程控制、数组
- 3.数据类型、运算符、表达式、运行流程
- java基础(数据类型,运算符)
- java基础知识(三 数据类型)
- Java 基础知识(整型数据类型)
- 忆Java基础知识之——Java语言介绍与运算符和流程
- 编辑距离问题(edit.pas/c/cpp)
- 如何写SysV服务管理脚本
- block,inline和inline-block细节对比
- 计算题--不要二
- 远程桌面连接不到阿里云服务器
- Java基础知识(数据类型、运算符、流程)
- Django POST常见的错误:CSRF verification failed. Request aborted.
- 机器学习——多元线性回归分析(multiple regression)及应用
- leetcode编程记录2 #53 Maximum Subarray
- netty源码分析(四)Netty提供的Future与ChannelFuture优势分析与源码讲解
- hdu1556 Color the ball(线段树区间修改)
- 高级软件工程实验报告一
- Lua语法结构之If和While
- 排序算法(六)快速排序的优化