Java基础知识(数据类型、运算符、流程)

来源:互联网 发布:淘宝免费模板衣服 编辑:程序博客网 时间:2024/04/25 15:44

数据类型


java中数据类型分为基本数据类型和引用数据类型。


基本数据类型:整数类型(4个):byteshortintlong

字符类型(1个):char

浮点类型(2个):floatdouble

布尔类型(1个):boolean

引用数据类型:数组、类、接口


数据类型转换


自动转换:

bytea = 12;//abyte类型变量

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;}}



关系运算符

      >>=<<===!=

注意:==是判断相等,得到布尔值truefalse

=是赋值


逻辑运算符

&&(与)、||(或)、!(非)


位运算符

&()|(或)、^(异或)


位运算将两个数转化成二进制再进行运算,
&
按位求与,两位都为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}}



赋值运算符

=

注意:==是判断相等,得到布尔值truefalse

       =是赋值

循环结构

while循环

while(循环条件){

代码块/循环体;

}


do…while循环

do{

代码块/循环体;

}while(循环条件);

注意:whiledo...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();}}}


循环的控制breakcontinue

break语句除了可以用在switch语句中,还可以用在循环体中。在循环体中遇见break语句,立即结束循环,跳到循环外,执行循环结构后面的语句。break语句用于结束整个循环。

continue语句用于结束本次循环,即在循环体中遇见continue语句,则循环体中continue语句后面的语句不会执行,接着进行下一次循环的判定。



阅读全文
1 0
原创粉丝点击