实验1 Java编程基础.docx
需积分: 0 3 浏览量
更新于2024-03-17
收藏 35KB DOCX 举报
### 实验1 Java编程基础知识点解析
#### 一、Java 输入输出方式
在Java中,基本的输入输出可以通过`java.io`包中的类实现。最常用的是`System.out.println()`和`Scanner`类。
- **System.out.println()**: 用于向控制台输出信息。
```java
System.out.println("Hello, World!");
```
- **Scanner 类**: 用于读取用户的输入。
```java
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
```
#### 二、if 语句的用法
if 语句用于根据不同的条件执行不同的代码块。其基本形式包括简单的if语句、if-else语句以及if-else if-else语句结构。
- **简单的 if 语句**:
```java
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println(year + " 是闰年");
}
```
- **if-else 语句**:
```java
if (score >= 90) {
System.out.println("优秀");
} else {
System.out.println("良好");
}
```
- **if-else if-else 语句**:
```java
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 70) {
System.out.println("中等");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
```
#### 三、switch 语句的语法
switch 语句用于基于不同的条件执行不同的代码块。它通常用于多个条件的情况下。
```java
switch (grade) {
case 10:
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
default:
System.out.println("不及格");
}
```
**注意**:
- 在每个 `case` 后面的 `break` 语句是必须的,它用来终止当前的 `case` 分支,并将控制转移到 `switch` 结构之外。
- 如果不使用 `break`,则会继续执行下一个 `case` 的代码,直到遇到 `break` 或者 `switch` 的结束。
#### 四、循环语句的用法
循环语句用于重复执行一段代码。Java 支持多种类型的循环,如 `for` 循环、`while` 循环和 `do-while` 循环。
- **for 循环**:
```java
for (int i = 1; i <= 100; i++) {
if (i % 2 == 1) {
sum += i;
}
}
```
- **while 循环**:
```java
int i = 1;
while (i <= 100) {
if (i % 2 == 1) {
sum += i;
}
i++;
}
```
- **do-while 循环**:
```java
int i = 1;
do {
if (i % 2 == 1) {
sum += i;
}
i++;
} while (i <= 100);
```
#### 五、数组的声明、创建和使用方法
数组是一组相同类型元素的集合。
- **一维数组**:
```java
int[] numbers = new int[10];
numbers[0] = 100;
```
- **二维数组**:
```java
int[][] triangle = new int[10][];
for (int i = 0; i < 10; i++) {
triangle[i] = new int[i + 1];
triangle[i][0] = 1;
triangle[i][i] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
```
#### 六、Arrays 类的用法
`Arrays` 类提供了许多静态方法来操作数组。
- **排序**:
```java
int[] arr = {5, 3, 8, 1};
Arrays.sort(arr);
```
- **查找**:
```java
int index = Arrays.binarySearch(arr, 3);
```
- **填充**:
```java
Arrays.fill(arr, 0);
```
#### 七、案例分析
1. **if...else 语句构造多分支判断闰年**:
```java
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
System.out.println(year + " 是闰年");
} else {
System.out.println(year + " 不是闰年");
}
```
2. **switch 语句判断成绩等级**:
```java
switch (true) {
case score >= 90:
System.out.println("优秀");
break;
case score >= 80:
System.out.println("良好");
break;
case score >= 70:
System.out.println("中等");
break;
case score >= 60:
System.out.println("及格");
break;
default:
System.out.println("不及格");
}
```
3. **循环计算序列和**:
```java
int sum = 0;
for (int i = 0; i <= 20; i++) {
sum += Math.pow(2, i) - 1;
}
```
4. **循环求素数之和**:
```java
int sum = 0;
for (int i = 100; i <= 200; i++) {
boolean isPrime = true;
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
sum += i;
}
}
```
5. **冒泡排序**:
```java
int[] nums = {3, 1, 4, 2, 5};
for (int i = 0; i < nums.length - 1; i++) {
for (int j = 0; j < nums.length - 1 - i; j++) {
if (nums[j] < nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
```
6. **打印杨辉三角**:
```java
int[][] triangle = new int[10][];
for (int i = 0; i < 10; i++) {
triangle[i] = new int[i + 1];
triangle[i][0] = 1;
triangle[i][i] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
```
7. **程序运行结果**:
```java
class TestApp {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 3) break;
System.out.print(i);
}
}
}
```
运行结果是:`012`。
8. **switch 语句分析**:
```java
class SwitchDemo {
public static void main(String[] args) {
int c = 38;
switch (c < 10 ? 1 : c < 25 ? 2 : c < 35 ? 3 : 4) {
case 1:
System.out.println(" " + c + "℃ 有点冷。要多穿衣服。");
case 2:
System.out.println(" " + c + "℃ 正合适。出去玩吧。");
case 3:
System.out.println(" " + c + "℃ 有点热。");
default:
System.out.println(" " + c + "℃ 太热了!开空调。");
}
}
}
```
- 当 `c=38` 时,运行结果是:`38℃ 太热了!开空调。`
- 当 `c=8` 时,运行结果是:`8℃ 有点冷。要多穿衣服。`
- 当 `c=48` 时,运行结果是:`48℃ 太热了!开空调。`
**添加 break 语句后的变化**:
- 添加 `break` 语句后,程序将在匹配到第一个 `case` 后立即退出 `switch` 结构,不再执行后续的 `case` 分支。
- 当 `c=38` 时,运行结果是:`38℃ 太热了!开空调。`
- 当 `c=8` 时,运行结果是:`8℃ 有点冷。要多穿衣服。`
- 当 `c=48` 时,运行结果是:`48℃ 太热了!开空调。`
通过以上分析和实践,可以深入理解Java的基本语法和数据结构,为后续更复杂的应用打下坚实的基础。
2301_80887764
- 粉丝: 0
- 资源: 1
最新资源
- 最优化方法及其MATLAB实现 源代码.zip
- 最佳多跳Adhoc路由部署.zip
- OPC DA转MQTT软件,网关软件 MQTT非常适合网络条件不好的情况下传输数据
- 用MATLAB解决了多模光纤中脉冲传播的GMMNLSE问题,并实现了高效的GPU实现.zip
- 用MATLAB实现MIMOOFDM无线通信的代码.zip
- 用MATLAB实现的一篇利用Andrew Howard 2008的可视化里程计的论文.zip
- 用matlab实现的80211n LDPC编解码器.zip
- 用MATLAB实现的异常检测代码支持向量数据描述SVDD.zip
- 用MATLAB实现了带MAC层的USRP无线电的OFDM.zip
- Matlab实现LSTM-XGBoost长短期记忆网络组合极限梯度提升树多输入单输出回归预测的详细项目实例(含完整的程序,GUI设计和代码详解)
- 用MATLAB实现了我们的照度估计技术,来自单幅图像ICCV09和IJCV12的论文.zip
- 用MATLAB实现两种流行的导航算法Astar和实时随机路径规划.zip
- 用MATLAB实现无人机无人机控制仿真,用RRT快速探索随机树进行路径规划,用b样条进行轨迹生成,用LP线性规划进行轨.zip
- 用MATLAB实现图像对齐和拼接.zip
- 用于BIDS数据集的MATLAB Octave工具.zip
- 用SOFT算法在MATLAB中实现视觉里程计.zip