Java初学者教程:深入理解switch语句

需积分: 11 0 下载量 111 浏览量 更新于2024-08-14 收藏 957KB PPT 举报
"本资料详细介绍了Java语言基础,特别是关于switch语句的使用,以及Java的基本语法,包括标识符、关键字、数据类型、常量与变量、运算符、控制语句、数组和字符串等内容。" 在Java编程语言中,`switch`语句是一种流程控制结构,用于基于不同条件执行不同的代码块。它提供了一种更简洁的方式来替代多个`if...else if...else`语句。`switch`语句的结构如下: ```java switch(表达式) { case 值1: // 语句块1 break; case 值2: // 语句块2 break; // ... case 值n: // 语句块n break; default: // 语句块n+1 (可选) } ``` 这里的`表达式`是一个能够返回整数、字符、枚举类型或`String`(自Java 7开始)的值。`case`后的`值1`, `值2`, ..., `值n`是与`表达式`进行比较的值。如果`表达式`的结果与某个`case`匹配,那么对应的`语句块`将被执行,直到遇到`break`语句,程序的执行会跳出整个`switch`结构。 `default`子句是可选的,当`表达式`的值与所有`case`都不匹配时,程序会执行`default`后面的代码块。`default`通常用来处理未知或未预见的情况。 在Java语言基础中,标识符是程序中用于标识变量、常量、类、方法、数组等的名称。它们必须遵循以下规则: 1. 可以由字母、数字、下划线 `_` 和美元符号 `$` 组成。 2. 首字符不能是数字。 3. 长度不限,但建议不要过长,保持可读性。 4. 区分大小写。 5. 不能使用Java的关键字。 关键字是Java预定义的具有特殊含义的词,比如`if`, `else`, `for`, `while`, `switch`, `case`, `break`, `default`等,它们不能作为标识符使用。Java中的关键字都是小写,例如`true`, `false`, `null`虽然看起来像关键字,但实际上它们是字面量,可以作为标识符使用。 此外,Java有八种原始数据类型:`byte`, `short`, `int`, `long`, `float`, `double`, `char`, `boolean`。这些类型用于存储不同类型的数据,如整数、浮点数、字符和布尔值。循环关键字如`do`, `while`, `for`用于控制循环,分支关键字如`if`, `else`, `switch`用于条件判断和多分支选择。 在编写Java程序时,了解并熟练掌握这些基础知识是非常重要的,因为它们构成了Java程序的基础框架。通过良好的编程习惯,如合理命名标识符、正确使用关键字和数据类型,可以提高代码的可读性和维护性。

package ece448.iot_sim; import java.util.List; import java.util.Map; import java.util.TreeMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ece448.iot_sim.http_server.RequestHandler; public class HTTPCommands implements RequestHandler { // Use a map so we can search plugs by name. private final TreeMap<String, PlugSim> plugs = new TreeMap<>(); public HTTPCommands(List<PlugSim> plugs) { for (PlugSim plug: plugs) { this.plugs.put(plug.getName(), plug); } } @Override public String handleGet(String path, Map<String, String> params) { // list all: / // do switch: /plugName?action=on|off|toggle // just report: /plugName logger.info("HTTPCmd {}: {}", path, params); if (path.equals("/")) { return listPlugs(); } PlugSim plug = plugs.get(path.substring(1)); if (plug == null) return null; // no such plug String action = params.get("action"); if (action == null) return report(plug); // P2: add your code here, modify the next line if necessary if("toggle".equals(action)){ plug.toggle(); return report(plug); }else if("on".equals(action)){ plug.switchOn(); return report(plug); }else if("off".equals(action)){ plug.switchOff(); return report(plug); } return "<html><body></body></html>"; } protected String listPlugs() { StringBuilder sb = new StringBuilder(); sb.append("<html><body>"); for (String plugName: plugs.keySet()) { sb.append(String.format("

%s

", plugName, plugName)); } sb.append("</body></html>"); return sb.toString(); } protected String report(PlugSim plug) { String name = plug.getName(); return String.format("<html><body>" +"

Plug %s is %s.

" +"

Power reading is %.3f.

" +"

Switch On

" +"

Switch Off

" +"

Toggle

" +"</body></html>", name, plug.isOn()? "on": "off", plug.getPower(), name, name, name); }如何对上述代码全部功能进行测试呢?请提供测试代码。

2023-06-12 上传