复习篇-基础语法

复习篇-基础语法 public class 名字{public static void main (String[]args){}}先定义变量,再使用int a5;int c,d,e,f;double b;int wudi[]new int[10000];//定义了10000个int类型wudi[0],wudi[1],...,wudi[9999]float类型后面一定要加f。egfloat x0.4fint 类型的字面常量0~65535可以直接赋值给 charchar i 65;声明数组1.2是一维数组3.4是二维数组数组元素类型 数组名字[]new 数组元素的类型[数组元素的个数]数组元素类型[] 数组名字数组元素类型 数组名字[] []数组元素类型[] []数组名字例如// 1. 创建一个长度为 3 的 int 数组int[] arr new int[3];// 2. 赋值arr[0] 10; // 第1个位置arr[1] 20; // 第2个位置arr[2] 30; // 第3个位置例如int[] arr {10, 20, 30, 40};先声明再赋值长度int len arr.length;数组创建后不手动赋值Java 会自动给每个位置赋【默认值】数组类型默认值int[]0double[] / float[]0.0boolean[]falsechar[]空字符\u0000引用类型String 等nullint[][] arr { {1, 2, 3}, // 第0行 {4, 5, 6} // 第1行 };二维数组中第一个是有几行第二个方括号是几列。遍历二维数组for(int i 0; i arr.length; i){for(int j 0; j arr[i].length; j){ System.out.print(arr[i][j] ); }数组复制import java.util.Arrays;System.arraycopy(源数组, 从哪里开始复制,目标数组, 复制到目标数组的哪个位置,复制几个元素 );egint[] a {10, 20, 30, 40, 50}; // 源数组int[] b new int[5]; // 目标数组空数组// 把 a 数组 从 0 开始复制 5 个 到 b 数组System.arraycopy(a, 0, b, 0, 5);数组排序import java.util.Arrays;Arrays.sort(arr);//从小到大for (int i arr.length - 1; i 0; i--) { System.out.print(arr[i] ); }//从大到小———————————————————————————————————————输出语句System.out.println(“文字”变量或者变量运算式子)egSystem.out.println(“a的值是”a)System.out.print(“文字”变量或者变量运算式子)不换行System.out.printf“格式控制部分”表达式1表达式2...%d类型int%c类型char%f类型float%s类型字符串%md类型intm列%m.nf类型float总长度至少占m列包括小数点不然前面加空格小数点保留n位%f 不指定小数点默认输出 6 位———————————————————————————————————————输入语句1.导包import java.util.Scanner;创建Scanner对象Scanner scnew ScannerSystem.in;3.接收数据int isc.nextInt();//表示将键盘录入的值作为int数返回· sc.nextInt() → 输入整数· sc.nextDouble() → 输入小数· sc.next() → 输入字符串不带空格· sc.nextLine() → 输入一整行可以带空格nextInt()后接nextLine()输入数字敲回车回车残留在缓冲区nextLine 直接读空。解决多读一次换行sc.nextLine(); // 吃掉换行 String ssc.nextLine();———————————————————————————————————————数据范围从小到大byteshortcharintlongfloatdoubleboolean不能与其他基本数据类型相互转换范围大范围小//直接转换int i(int)num1//将double类型的numq强制转换为int类型小数位会直接舍弃所有 byte/short/char 含有变量做算术运算时会自动提升为 int 类型再计算———————————————————————————————————————egbyte a 3;byte b 4;byte c a b; // 编译报错 byte c (byte)(ab);byte d 3 4; // 编译正常a -- 97 a-z是连续的所以b对应的数值是98c是99依次递加A -- 65 A-Z是连续的所以B对应的数值是66C是67依次递加0 -- 48 0-9是连续的所以1对应的数值是492是50依次递加char类型参与算术运算使用的是计算机底层对应的十进制数值。当“”操作中出现字符串时这个””是字符串连接符而不是算术运算。System.out.println(java 666); // 输出java666在””操作中如果出现了字符串就是连接运算符否则就是算术运算。当连续进行“”操作时从左到右逐个执行。和-- 既可以放在变量的后边也可以放在变量的前边。单独使用的时候 和-- 无论是放在变量的前边还是后边结果是一样的。参与操作的时候如果放在变量的后边先拿变量参与操作后拿变量做或者--。参与操作的时候如果放在变量的前边先拿变量做或者--后拿变量参与操作。符号作用说明赋值a10将10赋值给变量a加后赋值ab将ab的值给a-减后赋值a-b将a-b的值给a*乘后赋值a*b将a×b的值给a/除后赋值a/b将a÷b的商给a%取余后赋值a%b将a÷b的余数给a aba和b都是true结果为true否则为false短路与如果左边为真右边执行如果左边为假右边不执行。a和b都是false结果为false否则为true短路或||如果左边为假右边执行如果左边为真右边不执行。^逻辑异或a^ba和b结果不同为true逻辑非结果与原相反三元运算符语法格式关系表达式 ? 表达式1 : 表达式2;如果条件表达式成立或者满足则执行表达式1否则执行第二个if (关系表达式){语句体}if关系表达式{语句体1;}else{语句体2;}if关系表达式{语句体1;}else if关系表达式2{语句体2;}...else{语句体n1;}switch(标识符a){case 常量1:...break;case 常量2:...break;...default:...break}for(初始化表达式; 条件表达式; 更新表达式){循环体语句}初始化语句while(条件判断语句){循环体语句条件控制语句...}初始化语句do{循环体语句条件控制语句}while条件判断语句三种循环的区别for循环和while循环先判断条件是否成立然后决定是否执行循环体先判断后执行do...while循环先执行一次循环体然后判断条件是否成立是否继续执行循环体先执行后判断for循环和while的区别条件控制语句所控制的自增变量因为归属for循环的语法结构中在for循环结束后就不能再次被访问到了条件控制语句所控制的自增变量对于while循环来说不归属其语法结构中在while循环结束后该变量还可以继续使用死循环无限循环的三种格式for(;;){}while(true){}do {} while(true);跳转控制语句break跳出循环结束循环跳转控制语句continue跳过本次循环继续下次循环只能在循环中进行使用三个嵌套 for 循环最里面一层执行 break 只会跳出【当前这一层循环】外面两层循环完全不受影响继续正常执行。三个嵌套 for 循环最里面一层执行 continue 只会跳过【当前这一层循环的 剩余步骤】直接进入当前循环的下一次迭代 外面两层循环完全不受影响