目录
输入输出
输入:
输出:
控制流程
块作用域:
条件语句:
循环语句结构
关于switch语句
中断控制流语句:break 和 continue
大数值
数组
数组的遍历输出
输入输出
输入:
读取输入:
要想通过控制台进行输人,首先需要构造一个 Scanner 对象,并与“ 标准输人流” System.in 关联。
Scanner in = new Scanner(System.in);
使用 nextLine 方法是因为在输人行中有可能包含空格。
String name = in.nextLine();
要想读取一个单词(以空白符作为分隔符) 就调用
String firstName = in.next();
要想读取一个整数, 就调用 nextlnt 方法。
int age = in.nextlnt();
与此类似,要想读取下一个浮点数, 就调用 nextDouble 方法。
double x = in.nextdouble();
用到输入的时候就需要在程序的最开始添加上一行:
import java.util.*;
Scanner 类定义在java.util 包中。 当使用的类不是定义在基本java.lang 包中时,一定要使用import 指示字将相应的包加载进来。
输出:
将x输出到控制台上
System.out.print(x);
也可以用类似于c语言库函数中的printf,
System.out.printf("Hello, %s. Next year, you'll be %d", name, age);
输入输出文件夹:
可以使用下面的调用方式找到路径的位置:
String dir = System.getProperty("user.dir");//获取的是当前文件代码所路径
控制流程
块作用域:
由一对大括号{}括起来的若干条简单的Java语句称之为块。
一个块可以嵌套到另一个块内,但是不能在嵌套的两个块中声明同名的变量。
条件语句:
if(condition)statement //条件必须用括号括起来
循环语句结构
xxxx(){} //xxxx可以是for, while等
值得注意的是for循环中,执行的顺序
for(int i = 0; i<10;a++){System.out.println("大家好");//int i = 0;先执行 i<10;第二个执行 System语句第三个执行 最后执行a++}
另外,对有规律的数字进行计算,例如,求n的阶乘,能用数学公式计算的,不要盲目套用for循环。
关于switch语句
switch(a){ case 10:System.out.println("获得10");break;case 20:System.out.println("获得20");break;case 50:System.out.println("获得50");break;default:System.out.println("啥都木有");break;}
case 标签可以是:
类型为 char、byte、 short 或 int 的常量表达式。
枚举常量。
从 Java SE 7开始, case 标签还可以是字符串。(引用类型)
中断控制流语句:break 和 continue
(Java中这些完全是可选的,即不适用这些语句也可以表达同样的逻辑含义)
switch击穿:执行完上一句之后,接着继续执行,直到遇到break才停止运行。break就是为了防止击穿。
break只能打断包裹自己的for循环,不能打断多层
当遇到continue的时候,直接进入下次循环,此次循环continue之后的不执行
continue语句将控制转移到最内层循环的首部。
大数值
Biglnteger 类实现了任意精度的整数运算, BigDecimal 实现了任意精度的浮点数运算。
数组
是引用类型 不是基本类型;引用类型的 = 相当于把自己的指向换掉(Java中没有指针。)
声明一维数组
int[] a = new int[10];//a不是一个空数组,每个位置都被初始化为0,
int[] b = {1,2,3,4,5};
int[] c = new int[]{2,3,4,5,6};//以上都是声明一维数组的方式
声明二维数组:
int [][] a = new int[3][5];
int [][] b = {
{0,0,0,0,0}
{0,0,0,0,0}
{0,0,0,0,0}
};//以上两种声明方式等价
声明三维数组:
int [][][] c = new int [3][4][5];
表示这个数组中有3个二维数组,每个二维数组中有4个一维数组,每个一维数组中有5个元素
数组的遍历输出
for each遍历一维数组
int [] a = new int[3];for(int d : a )System.out.println(d);
for each 遍历二维数组(多维也是同理)
int[][] n = new int[3][4];for(int [] d : n){for(int e : d){System.out.println(e);}}
要想快速地打印一个二维数组的数据元素列表, 可以调用
System.out.println(Arrays.deepToString(a));
输出格式为:
[[0,0,0,0], [0,0,0,0], [0,0,0,0 ] [0,0,0,0]]
数组排序:常用的有Arrays.sort()函数
int[] a ={4,45,7,3,2,9,65,354};Arrays.sort(a);for(int d : a ){System.out.println(d);}
输出结果为: 2 3 4 7 9 45 65 354
一些关于StringBuilder和StringBuffer以及字符串拼接的知识点:
(大量)StringBuilder 事先申请足够大的数组,不需要每次循环都申请空间,少了很多申请和销毁空间的无用功,所以速度快,StringBuffer 跟上述原理一样,只不过加了锁,比上述StringBuilder稍微慢一点点。
(少量)用字符串拼接。