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

Java 重点语法

流程控制能让程序根据不同情况执行不同逻辑,方法用于封装代码实现复用,数组则方便我们存储和操作一组同类型数据。下面聚焦这些重点内容展开。

一、流程控制:分支与循环

(一)Switch 分支判断

switch 语句用于多分支选择,它会根据表达式的值,匹配对应的 case 分支执行。基本语法如下:

switch (表达式) {case 值 1:// 当表达式值等于值 1 时执行的代码break;case 值 2:// 当表达式值等于值 2 时执行的代码break;// 更多 case 分支default:// 当表达式值不匹配任何 case 时执行的代码
}

需要注意的是,switch 表达式的类型在 Java 5 及以前只能是 byteshortcharint;Java 7 开始支持 String 类型;Java 14 及以后还支持 enum(枚举)和 sealed 类型等。另外,break 用于跳出 switch 语句,如果没有 break,会发生 “穿透” 现象,即匹配到某个 case 后,会继续执行后面所有 case 的代码,直到遇到 break 或者 switch 结束。“穿透” 特性在某些场景下可以利用,比如多个 case 需要执行相同代码时。例如,根据星期几判断是否为工作日:

String day = "Monday";
switch (day) {case "Monday":case "Tuesday":case "Wednesday":case "Thursday":case "Friday":System.out.println(day + " 是工作日");break;case "Saturday":case "Sunday":System.out.println(day + " 是休息日");break;default:System.out.println("输入的星期不合法");
}

再比如,使用 enum 类型的 switch 示例:

enum Season { SPRING, SUMMER, AUTUMN, WINTER }
Season season = Season.SUMMER;
switch (season) {case SPRING:System.out.println("春天,万物复苏");break;case SUMMER:System.out.println("夏天,烈日炎炎");break;case AUTUMN:System.out.println("秋天,硕果累累");break;case WINTER:System.out.println("冬天,白雪皑皑");break;
}

(二)do - while 循环

do - while 循环的特点是先执行循环体,再判断循环条件,也就是说,循环体至少会执行一次。这和 while 循环(先判断条件,再执行循环体)有所不同,while 循环有可能一次都不执行循环体。do - while 适合那些无论如何都要先执行一次操作的场景,比如用户输入验证,至少要让用户输入一次,再判断输入是否合法。语法格式为:

do {// 循环体代码
} while (循环条件);

比如,实现一个简单的数字累加,至少执行一次累加操作:

int i = 0;
int sum = 0;
do {sum += i;i++;
} while (i <= 10);
System.out.println("1 到 10 的和为:" + sum); // 输出:55

再比如,用户输入密码,直到输入正确为止:

Scanner scanner = new Scanner(System.in);
String correctPassword = "123456";
String inputPassword;
do {System.out.print("请输入密码:");inputPassword = scanner.nextLine();
} while (!inputPassword.equals(correctPassword));
System.out.println("密码输入正确!");
scanner.close();

二、函数(方法):封装与复用

(一)static 关键字修饰方法

被 static 修饰的方法是静态方法,静态方法属于类,而不是类的实例(对象)。我们可以通过 “类名。静态方法名” 的方式直接调用静态方法,无需创建类的对象。静态方法通常用于定义工具方法,这些方法不依赖于对象的状态,只进行一些通用的操作。例如:

public class MathUtil {// 静态方法,计算两个数的和public static int add(int a, int b) {return a + b;}// 静态方法,计算一个数的平方public static int square(int num) {return num * num;}
}// 在其他类中调用
public class Test {public static void main(String[] args) {// 直接通过类名调用静态方法 addint sumResult = MathUtil.add(3, 5);System.out.println("3 + 5 = " + sumResult); // 输出:3 + 5 = 8// 调用静态方法 squareint squareResult = MathUtil.square(4);System.out.println("4 的平方是:" + squareResult); // 输出:4 的平方是:16}
}

需要注意的是,静态方法中不能直接访问非静态成员(非静态变量和非静态方法),因为非静态成员属于对象,而静态方法在类加载时就存在,可能此时还没有创建对象。

三、数组:批量处理同类型数据

(二)二维数组

二维数组可以理解为 “数组的数组”,用于存储表格型数据(比如矩阵)。它的声明、初始化方式有多种,这里介绍常见的两种:

  • 动态初始化
// 声明一个二维 int 数组,有 2 行,每行的列数后续确定
int[][] arr = new int[2][];
// 为第一行分配 3 列的空间
arr[0] = new int[3];
// 为第二行分配 2 列的空间
arr[1] = new int[2];
// 给数组元素赋值
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
  • 静态初始化
// 直接初始化一个二维数组,包含两行三列的数据
int[][] arr = {{1, 2, 3}, {4, 5, 6}};

访问二维数组的元素时,通过 “数组名 [行索引][列索引]” 的方式,比如 arr[0][1] 表示访问第一行第二列的元素(值为 2)。遍历二维数组通常需要使用嵌套循环,外层循环控制行,内层循环控制列,例如:

int[][] arr = {{1, 2, 3}, {4, 5, 6}};
for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j] + " ");}System.out.println();
}

运行上述代码,输出结果为:

1 2 3 
4 5 6 

二维数组还可以用于更复杂的场景,比如存储学生的多门课程成绩,每行代表一个学生,每列代表一门课程的成绩,方便进行成绩的统计(如计算每个学生的总分、平均分,每门课程的平均分等)。例如:

// 学生成绩数组,每行是一个学生的语文、数学、英语成绩
int[][] scores = {{85, 90, 92}, {78, 88, 80}, {95, 92, 98}};
// 计算每个学生的总分
for (int i = 0; i < scores.length; i++) {int total = 0;for (int j = 0; j < scores[i].length; j++) {total += scores[i][j];}System.out.println("学生 " + (i + 1) + " 的总分是:" + total);
}
http://www.dtcms.com/a/509491.html

相关文章:

  • 网站开发和网站运营的区别湖南 seo
  • 手机网站优化需要注意什么水利建设与管理司网站
  • 泉州专业网站建设费用赣州科技有限公司
  • joomla构建行业网站哈尔滨网站优化页面
  • c 网站开发程序员学做网站的步骤
  • 网站备案详细最新流程宁波网站推广服务
  • 如何做二维码跳转到网站网站频道运营怎么做
  • 建站语言有哪些制作公司网站价格
  • 租赁网站开发直接用ip做网站
  • 抚顺网站建设推荐百度账号安全中心官网
  • 做网站如何屏蔽中国的ipwordpress创建登录页
  • 婺源做网站有吗汉中做网站的公司
  • 公司做普通网站深圳seo关键词优化
  • Python Mixin技术详解:灵活扩展类功能的艺术
  • 电子商务网站建设策划方案做电商那个平台最好
  • 济南网站建设设计做网络推广的技巧
  • 我的世界做墙纸网站wordpress导航主题模板
  • 榆次做网站网站布局结构分类
  • 在住房城乡建设部网站上哪里下载规范国内响应式布局网站
  • 网站背投广告代码菏泽小程序开发制作
  • 泸州百度做网站联系万能浏览器手机版
  • 能进入各种网站的浏览器宝安公司网站制作哪家公司好
  • 做网站找哪家公司电子元器件商城
  • 外贸公司没网站三合一网站管理系统怎么做的
  • 网站制作公司商丘市网站运营心得
  • 国家icp备案网站上海专业网站开发
  • 照片网站cmswordpress geek theme
  • wordpress退出登录界面网站外推和优化
  • FDCT: Fast Depth Completion for Transparent Objects RAL 2023
  • 国外修图教程网站网站建设工作室创业计划书