当前位置: 首页 > news >正文

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单个字母、数字、标点符号或其他符号
字符串型String2,147,483,647 个字符(Java 规范限制)一组字符,实际长度由可用堆内存决定
布尔型booleantrue 或 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]+" ");
}
http://www.dtcms.com/a/289744.html

相关文章:

  • python 字典中取值
  • SQL189 牛客直播各科目同时在线人数
  • MySQL事物相关
  • Logback简单使用
  • 什么是SEO关键词优化的实战提升指南?
  • 如何系统化掌握角色设计与提示工程的深度整合
  • 基于Event Sourcing和CQRS的微服务架构设计与实战
  • 第十四届全国大学生数学竞赛初赛试题(非数学专业类)
  • 零基础入门 AI 运维:Linux 部署全栈项目实战(MySQL+Nginx + 私有化大模型)
  • 论文解读:Rethinking vision transformer through human–object interaction detection
  • 西门子 S7-1500 系列 PLC CPU 选型全指南:从类型到实战
  • 搭建大模型
  • 新人加入团队后如何快速理解看板?
  • 地图经纬度与地图切片像素坐标换算类
  • 2.组合式API知识点(1)
  • imx6ull-系统移植篇11——U-Boot 移植(下)
  • 不只是“能用”:从语义化到 ARIA,打造“信息无障碍”Web 应用的实战清单
  • Python关于numpy的基础知识数组的升维
  • leetcode丑数II计算第n个丑数
  • 操作系统总结
  • dify创建OCR工作流
  • springboot-profile
  • [学习] 双边带调制 (DSB) 与单边带调制 (SSB) 深度对比
  • 【Java学习|黑马笔记|Day18】Stream流|获取、中间方法、终结方法、收集方法及其练习
  • Redis面试精讲 Day 4:Redis事务与原子性保证
  • Node.js:常用工具、GET/POST请求的写法、工具模块
  • 基于单片机无线防丢/儿童防丢报警器
  • xavier nx上编译fast-livo过程中出现的问题记录
  • 分享一款免费好用的电视远程推送传输助手TV版软件
  • week4