文章目录
Java程序的基本结构
//java程序结构
package test; //定义包,必须是小写字母,多个单词用.隔开
import java.util.Scanner; //java API 一定在当前库中存在
public class Test { //创建类,类名习惯首字母大写
//System.out.println();//编译错误
public static void main(String[] args) { //定义主方法
Scanner console = new Scanner(System.in);
}
} //类体 class body
//编译错误:java编译器在将java源代码编译为class文件的过程出现的错误,一般是语法使用错误!当有编译错误时候,是没有class文件产生,也就不能运行程序。
- package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包,
package 顶层包名.子包名
; - 为使用定义在不同包中的java类,需用import语句来引入指定包层次下所需要的类或全部类(.*);
- 关键字public被称为修饰符*(access modifier)*,用于控制程序的其他部分对这段代码的访问级别;
- 源代码的文件名强烈建议与类名相同;
- static是静态修饰符,被标识的方法是静态的方法;
- void用于表示该方法不需要返回值;
- Java入口程序规定的方法必须是静态方法,必须声明为public,方法名必须为main,括号内的参数必须是String数组。
运算符和表达式
算数运算符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘× |
/ | 除÷ |
% | 取余数 |
注意,整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN的结果。
数学函数与常量
- 求平方根:
Math.sqrt(x)
; - x的a次幂(
x
a
x^a
xa):
Math.pow(x, a)
; - 三角函数:
Math.sin、Math.cos、Math.tan、Math.atan、Math.atan2
; - 指数函数:
Math.exp
; - 自然对数:
Math.log
; - 以10为底的对数:
Math.log10
; -
π
\pi
π常量的近似值:
Math.PI
; -
e
e
e常量的近似值:
Math.E
;
如果不想再数学方法名和常量名前添加前缀"Math",只需要在源文件的顶部添加代码:
import static java.lang.Math.*;
// static import静态导入导入的是静态成员,而import导入的是类或接口类型
结合赋值和运算符
x += 4;
//等价于
x = x + 4;
(一般地,将运算符放在=号的左边,如*=或%=)
自增与自减运算符
- 自增、自减运算符:n++将变量n的当前值加1,n–将n的值减1。
- 这些运算符只会改变变量的值,它们的操作数不能是数值。例如:4++是个非法语句。
int m = 7;
int n = 7;
int a = 2 * ++m; // a=16,m=8
int b = 2 * n--; // b=14,n=8
关系和boolean运算符
- 要检测相等性可以使用两个等号
==
; - 检测不相等就使用
!=
; - 感叹号
!
就是逻辑非运算符,运算符&&
表示逻辑**“与“运算符,运算符||
表示逻辑”或“**运算符; - 三目运算符
x?y:z
,当x返回结果为true时就返回y,当x返回结果为false时就返回z。
位运算符
处理整数类型时,可以直接对组成整型数值的各个位完成操作。位运算符包括:&
(“and”)、|
(“or”)、^
(“xor”)、~
(“not”)。另外还有>>
和<<
运算符将位模型左移或右移。
括号与运算符级别
结合性 | 运算符 |
---|---|
从左往右 | ()括号 |
从右往左 | ! ~ ++ – + 一元运算 - 一元运算 ()强制类型转换 new |
从左往右 | * / % |
从左往右 | + - |
从左往右 | << >> >>> |
从左往右 | < <= > >= |
从左往右 | == != |
从左往右 | & |
从左往右 | ^ |
从左往右 | | |
从左往右 | && |
从左往右 | || |
从右往左 | ?: |
从右往左 | = += -= *= /= %= &= |= ^= <<= >>= >>>= |
控制流程
条件语句
-
if (condition) statement
;if(yourSales >= target) { performance = "Satisfactory"; bonus = 100; }
-
if (condition) statement1 else statement2
。if(yourSales >= target) { performance = "Satisfactory"; bonus = 100; }else{ performance = "Unsatisfactory"; bonus = 0; }
循环语句
while
循环语句
-
while (condition) statement
;while(balance < goal){ balance += payment; years++; } System.out.println(years + "years.");
-
do statement while (condition)
。do{ balance += payment; years++; }while(balance < goal)
for
循环语句
-
for循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数。
// 将数字1~10输出到屏幕上for (int i = 1; i <= 10; i++){ //i只能作用域这块作用域 System.out.println(i);}
-
如果想要在for循环体外使用循环计数器的最终值,就要确保这个变量在循环体语句前被声明。
int i;for(i = 1;i <= 10;i++){ ...}//i在for块作用域外也能用
-
中断控制流程语句
-
break
语句用于退出循环;while(years <= 100){ balance += payment; if(balance >= goal) break; years++; }
-
continue
语句中断正常的控制流程,语句将控制转移到最内层循环的首部。while(sum < goal){ n = in.nextInt(); if(n < 0) continue; sum += n; }
多重选择:switch语句
switch
语句用于处理多个选项时,代替若干笨拙的if-else结构。switch语句将从与选项值相匹配的case标签处开始执行,直到遇到break语句,或执行到switch语句的结束处为止。
switch(choice)
{
case 1:
...;
break;
case 2:
...;
break;
case 3:
...;
break;
case 4:
...;
break;
default:
...;
break;
}