Java基础2——基本程序设计

来源:互联网 发布:淘宝微淘话题在哪里找 编辑:程序博客网 时间:2024/05/22 06:51

1、控制台输入输出

(1)输入

import java.util.Scanner; //或import java.util.*;从java.util包导入Scanner类

        Scanner input=new Scanner(System.in); //声明一个Scanner类型的变量,创建一个对象

        double radius=input.nextDouble(); //调用对象的方法

        其中next方法包括nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()、next()、nextLine()等。

(2)输出

        System.out.println();//显示完字符串后,将光标移至下一行

        System.out.print();//显示完字符串后,不会将光标移至下一行

        System.out.printf(“countis %d,amount is %f”,count,amount);//格式化输出,输出宽度不足10,在前面加空格,多于10则自动增加宽度。在%后面加-,则左对齐。要在格式字符串里输出字面量%,则需输入%%。

格式数据类型%10d十进制整数%10.2f浮点数%10.2e科学计数法%10c字符%10b布尔值%10s字符串


2、标识符、变量和常量

        标识符是由字母、数字、下划线(_)和美元符号($)构成的字符序列,不能以数字开头,不能是保留字、true、false或null。区分大小写。避免采用缩写,用完整的词汇更有描述性。

        类名每个单词的首字母大写XxxYyyZzz;变量名和方法名使用小写字母开头xxxYyyZzz;包名所有字母小写xxxyyyzzz。大写常量中所有字母,两个单词间用下划线连接XXX_YYY。

        变量指在程序中可能被改变的值,声明和赋初值尽可能一步完成;常量指在其生存期内值不可改变的量,最好在同一条语句中声明和赋初值,且只能赋值一次。常量可以是整数、小数、布尔型、字符、字符串、null等形式。

        datatype variableName=value;

        final datatypeCONSTANT_NAME=value;


3、基本数据类型

大类

类型

默认值

位数

范围

整型

byte

0

8

-128~127

short

0

16

-32,768~32,767

int

0

32

-2,147,483,648~2,147,483,647

long

0

64

-9,223,372,036,854,775,808

~9,223,372,036,854,775,807

浮点型

float

0.0

32

负数-3.4E+38~-1.4E-45

正数1.4E-45~3.4E+38

double

0.0

64

负数-1.7E+308~-4.9E-324

正数4.9E-324~1.7E+308

字符型

char

 

16

单个字符或转义序列

布尔型

boolean

false

1

1(ture)  0(false)

(1)字符型

        字符型字面量包括单个字符或转义序列,用单引号括住。

        一个字符在计算机中以0和1构成的序列来存储,把字符映射到它的二进制形式的过程称为编码。Unicode码是其中的一种编码方案,它支持使用世界各种语言所书写的文本的交换、处理和显示。一个16位的Unicode码产生65536个字符,用以\u开头的4位十六进制数表示,范围从’\u0000’到’\uFFFF’。其中从’\u0000’到’\u007F’对应128个ASCII字符。

字符ASCII十进制编码值‘0’~’9’48~57‘A’~’Z’65~90‘a’~’z’97~122

转义序列名称\b退格\t水平制表符\n换行符\f换页符\r回车符\\反斜杠\"双引号\'单引号

        两个字符可以使用关系操作符进行比较。

        Character类中的方法:isDigit(ch)、isLetter(ch)、isLetterOrDigit(ch)、isLowerCase(ch)、isUpperCase(ch)、toLowerCase(ch)、toUpperCase(ch)。

(2)数值型字面量      

        整型字面量默认为int型,可以赋给byte、short、int、long型。如果表示long型字面量,在数字后面加L,如果数字太长,可以在中间加下划线。整型字面量默认为十进制正数;以0b或0B开头,表示二进制字面量;以0开头,表示八进制字面量;以0x或0X开头,表示十六进制字面量。

        浮点型字面量默认为double型,也可以在小数后面加d或D。如果要将小数赋给float类型的变量,需要在小数后面加f或F。浮点数还可以用e或E表示。

(3)数值类型转换

        数值类型转换,包括赋值转换、方法调用转换和字符串转换(+)。扩展转换,有时不损失精度,有时损失精度(int->float),可以自动完成;窄化转换,可能丢失信息,必须显式转换。short和char都是16位,但依然需要强转。强制转换优先级较高,仅对它紧跟的部分有效。


4、运算符

(1)算术、赋值运算符

        加(+)、减(-)、乘(*)、除(/)、求余(%),均是二元操作符,+-还是一元操作符。当被除数是负数时,余数才是负数。其中(+)也被称为字符串连接符,字符串和任何数据使用+相连接,都变成字符串。例:”5+5”+5+5=>5+555;”5+5”+(5+5)=>5+510;’a’+1=>98;

”a”+1=>a1。如果有任何运算单元的长度超过int,那么运算结果就按照最长的长度计算;如果任何运算单元的长度都不超过int,那么运算结果就按照int来计算。

        自增(++)、自减(--),有时前置与后置结果不同,避免在同一个表达式中使用多个自增自减运算符。

        赋值(=)、增强赋值(+=)(-=)(*=)(/=)(%=)。

(3)关系运算符

        (<)(<=)(>)(>=)(==)(!=)。

(4)逻辑运算符

        非(!)、与(&&)、或(||)、异或(^)。

(5)条件运算符

        布尔表达式?表达式1:表达式2;唯一的三元运算符。

(6)位运算符

        通过Integer.toBinaryString()方法,将一个十进制整数转换为一个二进制字符串。

        位与(&)、位或(|)、位与或(^)、求反(~);左移位(<<)右边空出来的补0;带符号位右移位(>>)最高位补上符号位,无符号位右移位(>>>)左边空出来的补0。

        位操作符仅适用于四种整数类型。位操作涉及的字符转换为整数。所有的位操作符都可以构成位赋值操作符。

        一个数异或同一个数两次,结果是第一个数,可用于加密。

        移N位即乘或除2的N次幂,除非超出整数范围。

        练习1:最有效计算2*8,2<<3;

        练习2:对两个整数变量的值进行互换,n=n^m; m=n^m; n=n^m;;

        练习3:获取一个数的十六进制表现形式,60&15=12,temp=60>>>4,temp&15=3。

(7)运算符优先级和结合规则

         除了赋值运算符,所有的二元运算符都是左结合。

操作符

优先级

++、--

后置操作符

最高级

 

 

 

 

 

 

 

 

 




 

最低级

+、-、++、--

一元加号减号、前置操作符

(type)

类型转换

!

*、/、%

算术运算符

+、-

<、<=、>、>=

关系运算符

==、!=

^

逻辑运算符

&&

||

=、+=、-=、*=、/=、%=

赋值运算符


5、选择

        单分支if语句、双分支if-else语句、嵌套if语句、多分支if-else语句。

注意:

(1)最好不省略花括号,在同一个块中,else和离它最近的if匹配

(2)直接测试布尔变量,不使用==或!=;

(3)简化布尔变量赋值,eg:booleaneven=number%2==0;;

(4)比较两个浮点数值是否相等,final double EPSILON=1E-14,求绝对值<EPSILON,float设置为1E-7。

        switch语句:当switch表达式的值与case语句的值匹配时,执行从该case开始的语句,直到遇到break语句或switch语句结束。switch表达式必须能计算出char、byte、short、int、enum或String型值。

switch(switch表达式){

        case 值1:语句(组)1

            break;//可选

        case 值2:语句(组)2

            break;

        ...

        case 值N:语句(组)N

            break;

        default:其它情况执行的语句(组)//可选

}


6、循环

(1)循环

        while(循环继续条件){}

        do{}while(循环继续条件);

        for(初始操作;循环继续条件;更新计数器){}如果循环控制变量只在循环体使用,就在初始操作中声明;如果省略循环继续条件,默认为true,最好不要省略;最好使用整数计数器。

        for(类型 该类型变量:数组对象名){}增强for循环,不使用下标变量就可以对数组或集合对象进行遍历。

(2)break和continue

        break:switch语句;终止break所在的最内层循环;跳出所指定的代码块。

        continue:结束当前迭代,程序控制转向该循环体末尾。


7、常用数学函数

        Java在Math类中提供了许多实用方法,来计算常用的数学函数。Math类在java.lang包中,该包中所有类隐式导入。

        double常量:Math.PI和Math.E。

        三角函数:sin(radians)、cos(radians)、tan(radians)、asin(a)、acos(a)、atan(a),均以弧度计。toRadians(degree)、toDegrees(radians),角度与弧度相互转换。

        指数函数方法:exp(x)、log(x)(自然底数)、log10(x)、pow(a,b)、sqrt(x)。

        取整方法:ceil(x)、floor(x)、rint(x)、round(x)。

        abs(x)方法返回一个数(int、long、float、double型)的绝对值。

        random()方法生成大于等于0.0且小于1.0的double型随机数。

 

阅读全文
0 0