Java入门-【3】变量、字符串、条件、循环、数组的简单总结
变量、字符串、条件、循环、数组的简单总结
- 1 变量
- 1.1 分配变量类型
- 1.2 变量的数据类型
- 1.3 变量命名
- 1.4 运算符
- 1.5 递增(++)和递减(--)变量
- 2 字符串
- 2.1 字符串简单使用
- 2.2 字符串处理
- 2.2.1 比较字符串
- 2.2.2 字符串的长度
- 2.2.3 创建全是大写或小写的字符串
- 2.2.4 查找字符串
- 3 条件
- 3.1 if-else 语句
- 3.2 switch 语句
- 3.3 三元运算符
- 4 循环
- 4.1 for 循环
- 4.2 while 循环
- 4.3 do-while 循环
- 4.4 退出循环
- 4.5 命名循环
- 4.6 复杂的循环
- 5 数组
- 5.1 创建数组
- 5.2 多维数组
- 5.3 数组排序
1 变量
变量,一个用户存储信息的特殊存储空间。
存储在变量中的信息可以在程序运行时进行更改。
计算机程序是告诉计算机做什么的一组指令。每个指令称为一条语句。
有些语句之所以称为表达式,是因为它们涉及到算术表达式并产生结果。
1.1 分配变量类型
在Java程序中,变量是用一条语句创建的,该语句必须包含以下两点:
(1)变量的名称。
(2)变量将存储的数据类型。
变量还可以包含:存储的信息的值。
int number = 10;
1.2 变量的数据类型
类型说明 | 数据类型 | 数据范围 | 补充 |
---|---|---|---|
整型 | int | -21.4亿 ~ 21.4亿 | 整数类型 |
浮点型 | float | ±1.4E-45 到 ±3.4E38,最多38位小数 | 存储可能包含小数点的数值 |
双精度浮点型 | double | ±4.9E-324 到 ±1.8E308,最多300位小数 | 较大的浮点型,高精度计算 |
字节型 | byte | -128 ~127 | 存储整数 |
短整型 | short | -32768 ~ 32767 | 存储比整型(int)变量范围小的整数 |
长整型 | long | -9.22E-18 ~ 9.22E-18 | 覆盖一切足够大的数量 |
字符型 | char | 长度为1 | 单个字母、数字、标点符号或其他符号 |
字符串型 | String | 2,147,483,647 个字符(Java 规范限制) | 一组字符,实际长度由可用堆内存决定 |
布尔型 | boolean | true 或 false | 判断是或否可用 |
1.3 变量命名
Java中的变量名可以以字母、下划线或美元符号($)开头。
名称的其余部分可以是任何字母或数字。
Java是区分大小写的:变量名、对象、类、包、方法,都必须使用一致的书写方式来引用。
变量的名称应该以某种方式描述其用途。
第一个字母应该是小写的,如果变量名有多个单词,后面每个单词的首字母应该是大写的。
如:gameOver
注意:不能在变量名中使用标点符号或空格。
Java使用的关键字,如 public、class、true 和 false 等,不能作为变量的名称。
在变量中存储值
若要在变量创建时为其设置初始值,请使用等号(=)。
int m = 300;
int m1 = m;
二个变量的类型相同,可以将一个变量的值赋给另外一个变量。
如果没有给变量赋初始值,应该在使用它前赋值,
否则,会在编译时报错,说明变量“可能没有初始化”。
1.4 运算符
语句可以通过使用运算符(“+” “-” “*” “/” “%”)来使用算术表达式。
“%”(模运算符):从除法表达式中获取余数。
运算符优先级:
1、进行递增和递减。
2、进行乘法、除法和模数除法。
3、进行加、减法。
4、进行比较。
5、等号“=”用于设置变量的值。
1.5 递增(++)和递减(–)变量
//变量的值增加1,使用“++”运算符
power++;
//变量的值减少1,使用“--”运算符
rating--;//还可以将运算符放在变量名前面
++power;
--rating;
前缀:运算符放在变量名前面
后缀:运算符放在变量名后面
注意:
当对表达式的变量使用后缀运算符时,在对表达式进行完全求值之前,变量的值不会发生变化。
前缀运算符正好相反,在对表达式内部的变量上使用它们,则在对表达式求值之前,变量的值会发生变化。
int x = 3;
int answer = ++x * 10; //40
int x1 = 3;
int answer1 = x1++ * 10; //30
2 字符串
Java程序使用字符串作为与用户通信的主要方式。
字符串是字母、数字、标点符号和其他字符的集合。
2.1 字符串简单使用
字符串型变量存储文本并呈现给用户。字符串最基本的元素是字符。
字符的值必须用单引号标注,字符串用双引号围绕文本。
char quitKey = '@';
String fullName = "Fin Shepard";
//在程序中输出字符串
System.out.println(fullName);
System.out.print("There is ");
System.out.print("my home. ");
//System.out.print() 是同一行输出,System.out.println()是输出完后会换行。
在字符串中使用特殊字符,在每一个特殊字符前面添加一个反斜杠()。
字符串粘贴在一起、字符串和变量连接,使用“+”运算符。
2.2 字符串处理
2.2.1 比较字符串
equals() :比较二个字符串是否相等。返回结果是布尔值( true 或 false)。
equalsIgnoreCase() :不考虑大小写的比较字符串。
if("abd".equals("Abd")) {}
if("abd".equalsIgnoreCase("Abd")) {}
2.2.2 字符串的长度
length() 确定字符串的长度。
String name = "test123";
int nameLength = name.length();
2.2.3 创建全是大写或小写的字符串
toUpperCase() :创建全是大写字母的变量。
toLowerCase() :创建全是小写字母的变量。
String name = "Test123";
String nameUpper = name.toUpperCase(); //TEST123
String nameLower = name.toLowerCase(); //test123
2.2.4 查找字符串
indexOf() :查看在一个字符串中是否能找到另一个字符串。返回字符串位置。
没有找到,生成值 -1;如果找到,生成一个整数,整数表示字符串开始的位置。
字符串中的位置从0开始编号。
contains():在一个字符串中查找另外一个字符串,不关心位置,只确认是否存在。返回布尔值。
int position = "test123".indexOf("12");
if ("test123".contains("123")) {}
3 条件
当Java程序做决策时,它通过使用条件语句来实现。
测试条件的基本方法是使用 if 语句。
if 语句测试条件为真或假:只有为真才执行 if 语句内的代码块。
条件关键字:if、else、switch、case、break。
条件运算符:==、!=、<、>、<=、>=、?、布尔型变量。
“=” 是变量赋值,“==”是条件语句中的 等式运算符。
3.1 if-else 语句
条件为真,做一些事情,为假时,做另外一些事情。
可以将 else 语句与 if 语句结合使用。
else语句没有在其旁边列出条件,若有多个条件判断则可以使用 else 将多个 if 语句链接在一起。
char grade = 'A';
if (grade == 'A') {// 优秀
} else {//不是优秀
}
//多个条件判断
if (grade == 'A') {
} else if (grade == 'B') {
} else if (grade == 'C') {
} else {
}
3.2 switch 语句
处理几个不同的条件,还可以使用 switch 语句。
char grade = 'B';
switch (grade) {case 'A':System.out.println("You got an A.");break;case 'B':System.out.println("You got an B.");break;case 'C':System.out.println("You got an C.");break;default:System.out.println("You got an F.");
}
case 语句中的值与 switch 语句中的变量值匹配时,计算机将运行 case 语句之后的所有语句,直到遇到 break 语句为止。
注意不要忘记写 break。
当前面的 case 语句都不为真,则执行default 语句。
3.3 三元运算符
Java中较复杂的条件语句是 三元运算符。三元运算符根据条件分配值或输出值。
可以使用 三元运算符(更短更复杂)替代 if-else 语句。
三元表达式有以下5个部分。
1、测试的条件,用圆括号标注,如 (skillLevel>5)。
2、一个问号(?)。
3、条件为真时使用的值。
4、一个冒号(:)。
5、条件为假时使用的值。
int skillLevel = 2;
int number = (skillLevel>5) ? 20 : 10 ; //10
4 循环
循环,程序可以反复执行相同的操作。循环是在程序中重复的语句或块。
有些循环运行得次数是固定的,而有些可以无限运行下去。
循环语句:for、do 和 while 。
4.1 for 循环
for 循环以固定的次数重复程序的某个部分。
在 for 关键字后面的圆括号中有3部分:初始化、条件、变化部分。
//循环输出 0~999 中所有能被 12 整除的数字。
for (int dex = 0; dex < 1000; dex++) {if (dex % 12 == 0) {System.out.println("#:" + dex);}
}
初始化部分:需要设置计数器,可以在for语句中创建变量,如 dex。
条件部分:包含一个必须保持为 true 的条件,循环才能继续循环。当条件为 false 时,循环结束。
变化部分:包含一个语句,语句更改计数器的值。每次循环运行都会处理该语句。
计数器必须以某种方式进行更改,否则循环永不结束。
4.2 while 循环
while 循环比 for 循环简单。它唯一需要的是一个条件测试,并伴随 while 语句。
//这个循环继续循环,直到 gameLives 变量不再大于0。
int gameLives = 3;
while (gameLives > 0) {//
}
while语句在处理循环中的任何语句之前测试循环开始时的条件。
如果程序第一次到达while语句时,测试条件为 false,则忽略循环中的语句。
如果while语句条件为 true,则循环运行一次并再次测试while语句的条件。
如果测试的条件在循环中没有发生变化,那么循环就会一直循环下去。
4.3 do-while 循环
do-while循环类似于 while 循环,但是条件测试位于不同的位置。
//这个循环继续循环,直到 gameLives 变量不再大于0。
int gameLives = 3;
do {//
} while (gameLives > 0) {
do-while 循环:因为条件测试是在循环语句之后运行的,而不是在循环语句之前。
当程序运行且第一次到达 do 循环时,会自动处理 do 和 while 之间的语句,然后测试 while 语句的条件,以确定是否应该重复该循环。
如果条件为 true,则循环再循环一次;
如果条件为 false,则循环结束。
必须在 do 和 while 之间的语句中完成更改条件的操作,否则循环将无限地继续。
do-while 循环 和 while 循环 的区别在于:即使循环条件第一次为false,循环内的语句也会至少执行一次。
4.4 退出循环
退出循环的正常方法是将测试条件变为 false。
break语句:希望循环立即结束,即使正在测试的条件仍然为 true,可以使用 break 语句来完成。
continue语句:使循环退出当前遍历,并在下一次循环的第一个语句处重新开始。
int index = 0;
while (index <= 1000) {index = index + 5;if (index == 400) {continue;} else if (index == 500) {break;}
}
4.5 命名循环
循环也可以放在其他循环中。
在某些情况下,希望同时跳出多个循环,必须为外部循环提供一个名称。
要为循环命名,请将循环的名称放在循环开始之前的行上,并在后面加上冒号。
当循环有名称时,使用 break 或 continue 语句后的名称来指示 break 或 continue 语句应用于哪个循环。
int points = 0;
int target = 100;
targetLoop:
while (target <= 100) {for (int i = 0; i < target; i++) {if (points > 50) {break targetLoop;}points = points + i;}
}
4.6 复杂的循环
for 循环可以在初始化、条件和变化部分中包含多个变量。
for 语句的初始化部分也可以是空的,循环的计数器已经在程序的另一部分中被赋予了一个初始值。
int i,j;
for (i = 0, j = 0; i * j < 1000; i++,j+=2 ) {//
}
int displayCount = 1;
int endValue = 13;
for ( ; displayCount < endValue; displayCount++) {//循环内容
}
5 数组
数组是一组共享相同类型的相关变量,可以存储为变量的任何类型的信息都可以成为存储在数组中的项。
数组可用于跟踪比单个变量更复杂的信息类型,但它们几乎同样易于创建和操作。
5.1 创建数组
数组是通过声明组织到数组中的变量类型和数组的名称来创建的。类型后面有一个对方括号([]),用于区分数组和变量。
//创建字符串型数组
String[] name;
可以将 new 关键字与变量类型一起使用,或者将值存储在花括号标记内的数组中。
在使用 new 关键字时,必须指定数组中存储了多少不同的项。
数组中的每一项都称为元素。
数组的第一个元素编号为 0 不是 1。
//创建有3个元素的整型数组
int[] number = new int[3];
number[0] = 10;
number[1] = 50;
number[2] = 100;
//创建有初始值的数组
String[] names = new String { "chen", "Wang", "Xiao" };
//数组的长度,即有多少个元素,可以通过length获取
int namesLength = names.length;
//将字符串中的每个字符放入字符型数组的元素中
String test = "Hello World!";
char[] test1 = test.toCharArray();
使用数组和使用任何变量一样,不同在于:数组的元素编号必须在数组名称旁边的方括号中。
可以在任何能够使用变量的地方使用数组元素。
5.2 多维数组
数组可以设置需要的任意多个维度,但是会占用大量内存。
创建50 X 50 的数组相当于创建 2500 个单独的变量。
一维数组可以使用单个数字检索元素,
创建具有两个维度的数组,在创建和使用数组时必须使用一组额外的方括号。
//创建二维数组,第一个维度有50个元素,第二个维度有50个元素,共有2500个元素(50x50)
boolean[][] selectedPoint = new boolean[50][50];
selectedPoint[4][13] = true;
selectedPoint[7][6] = false;
5.3 数组排序
排序是将相关元素列表按固定顺序排列的过程。
当将一组类似的元素组合到一个数组时,可以重新排列元素。
//交换数组中的两个元素的值
int[] numbers = { 3, 7, 9, 10, 12, 11 };
int temporary = numbers[4];
numbers[4] = numbers[5];
numbers[5] = temporary;
在处理字符串和基本类型的变量(如整数和浮点数)时,可以使用Arrays类按升序对它们进行排序。
即:Arrays.sort(numbers);
//输出为:3 7 9 10 11 12
int[] numbers = {3, 9, 7, 10, 12, 11};
Arrays.sort(numbers);
for (int i = 0; i < numbers.length; i++) {System.out.print(numbers[i]+" ");
}