#码神心得_06# 运算符、循环流程控制、数组

本文深入浅出地介绍了编程中的核心概念,包括各种运算符的作用与用法、循环流程控制的应用场景及关键字的功能,同时通过实例演示了数组的操作及常见错误处理。

这一次课的内容挺多的,虽然以前基本都有学过,但是“温故而知新”,收获也是蛮大的!


一、运算符

1、算术运算符:+、-、*、/、%等

2、关系运算符:>=、<=、==、===(恒等于)

3、逻辑运算符:&&、||、!、(与或非)

4、赋值运算符:==、+=、-=等

5、位运算符:针对2进制数

       & 与:同时为1返回1

       | 或:只要有1返回1

       ~ 非:翻转所有位,一元运算

       ^ 异或:只要不相同返回1

       << 左移:向左移动2位,向右补0

       >>右移:向右移动2位,向左补符号位

      >>>无符号位右移:向右移动2位,向左补0

6、三目运算符:a>b?a:b

7、其他运算符:对象运算符instanceof,判断该对象是否为指定对象,返回true或false


二、循环流程控制

一般情况下,三种循环结构都可以互相转换

1、while:

2、do-while

3、for

4、foreach:在遍历数组、集合方面使用较方便

		int[] temp = {3,7,9,6,12,4,30,45,20,89};
		
		for (int i : temp) {
			System.out.print(i+" ");
		}


5、关键字:

        break:终止整个循环

       continue:跳过本次循环

       return:跳出这个方法


三、数组

1、数组的声明:静态声明:int[] a = {1,2,3,4,5};       动态声明:int[] a = new int[5];只声明数组长度

2、数组的遍历:使用循环结构,由数组下标进行遍历:

		int[] temp = {3,7,9,6,12,4,30,45,20,89};
		
		for (int i = 0; i < temp.length; i++) {
			System.out.print(temp[i]+" ");
		}
3、数组里的数据类型不是绝对要一致,例如声明一个对象数组,里面的对象可以是一个父类的不同的子类对象。

4、数组出错类型:

(1)超出界限j:ava.lang.ArrayIndexOutOfBoundsException     

(2)内存溢出:exceeds VM limit     

(3)数组元素个数超出最大值:Requested array size

5、Arrays类的一些用法:

(1)查找数组元素的下标:int index = Arrays.binarySearch(目标数组, 目标元素);

(2)复制数组:int[] temp = Arrays.copyOf(目标数组,长度);

(3)输出数组:Arrays.toString(目标数组);

(4)改变数组元素:Arrays.fill(temp, 3,6, 100);将数组temp下标3—6的元素都改为100

(5)对数组进行升序排序:Arrays.sort(temp);


课堂作业

作业一:使用循环语句输出九九乘法表

public class MultiplicationTable {
	public static void main(String[] args) {
		
		String result ;
		for (int i = 1; i < 10; i++) {
			for (int j = 1; j <= i; j++) {
				
				result = i + "*" + j + "=" + (i * j);

				if (i == j) {
					System.out.print(result);
				} else {
					System.out.print(result + ",");
				}

			}
			System.out.println();
		}
	}

}
效果截图:



作业二:使用循环输出等腰三角形

public class Triangle {

	public static void main(String[] args) {
		System.out.println("请输入等腰三角形高:");
		Scanner scanner = new Scanner(System.in);
		int length = scanner.nextInt();
		
		int temp = 0;
		for (int i = 0; i < length; i++) {
			for (int j = 0; j < length * 2 - 1; j++) {
				if (j + 1 < (length - temp) || j + 1 > (length + temp)) {
					System.out.print(" ");
				} else {
					System.out.print("*");
				}

			}
			temp++;
			System.out.println();
		}

	}

}
效果截图:


作业三:请将下面的数组去重,并输出最后结果,可能的话封装成一个通用的方法

 String [] str = {“Java”, “C++”, “Php”, “C#”, “Python”, “C++”, “Java”};

public class DuplicationRemove {

	public static void main(String[] args) {

		String[] str = { "Java", "C++", "Php", "C#", "Python", "C++", "Java" };

		DuplicationRemove du = new DuplicationRemove();
		String[] result = du.removeDuplication(str);
		System.out.println("原数组为:" + Arrays.toString(str));
		System.out.println("\n去重后为:" + Arrays.toString(result));

	}

	public String[] removeDuplication(String[] str) {
		String tempstr = "";

		for (int i = 0; i < str.length; i++) {
			int temp = 0;
			for (int j = 0; j < i; j++) {
				if (str[i].equals(str[j])) {
					temp = 1;
					break;
				}
			}
			if (temp == 0) {
				tempstr += str[i] + " ";
			}
		}
		String[] result = tempstr.split(" ");
		return result;
	}

}
效果截图:



实验四 数据类型、变量、控制结构及数组综合实验 一、实验目的 综合运用所学数据类型、常量、变量、运算符、控制结构及数组等知识,以达到以下要求: 1. 掌握数据类型变量、常量的声明和初始化 2. 能够灵活的使用流程控制解决问题。 3. 能够熟练的完成数组的的定义与初始化、数组的遍历和排序算法。 二、实验类型及课时 验证/设计/综合:综合性试验;课时:2。 三、实验环境 装有 Java 语言工具软件 (Eclipse 或 Eclipse)的微机若干 四、实验内容 1. 通过多项式的分析,利用流程控制结构及嵌套,实现下面的求和。 在键盘上输入 n,编程计算: \text{sum}= 1 - \frac{1}{2!} + \frac{1}{3!} - \dots \dots (-1)^{n-1}\frac{1}{n!} 2. 通过分析平面图形,使用嵌套循环,正确输出以下内容: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 3. 请使用数组存储该数列:8,4,2,1,23,344,12,并结合数组的遍历、以及 Arrays 类的 sort()方法和 binarySearch()方法完成下面的要求: (1) 循环输出数列的值 (2) 求数列中所有数值的和 (3) 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数。 4. 练习数组的排序算法: 产生 0 ~ 100 的 8 个随机整数,并利用冒泡排序法将其升序排序后输出(冒泡排序算法:每次进行相邻两数的比较,若次序不对,则交换两数的次序)。 五、实验报告要求 1. 整理实验结果。 2. 小结实验心得体会。
最新发布
10-03
### Java 实验实现 #### 1. 数据类型、变量和常量的声明初始化 ```java public class DataTypeExperiment { public static void main(String[] args) { // 数据类型、变量和常量的声明初始化 // 基本数据类型 int integerVariable = 10; double doubleVariable = 3.14; boolean booleanVariable = true; char charVariable = &#39;A&#39;; // 常量 final int CONSTANT_VALUE = 20; System.out.println("Integer Variable: " + integerVariable); System.out.println("Double Variable: " + doubleVariable); System.out.println("Boolean Variable: " + booleanVariable); System.out.println("Char Variable: " + charVariable); System.out.println("Constant Value: " + CONSTANT_VALUE); } } ``` #### 2. 多项式求和 ```java class Polynomial { private int[] coefficients; private int[] exponents; public Polynomial(int[] coefficients, int[] exponents) { this.coefficients = coefficients; this.exponents = exponents; } public Polynomial add(Polynomial other) { int[] newCoefficients = new int[Math.max(this.coefficients.length, other.coefficients.length)]; int[] newExponents = new int[Math.max(this.exponents.length, other.exponents.length)]; for (int i = 0; i < this.coefficients.length; i++) { newCoefficients[i] = this.coefficients[i]; newExponents[i] = this.exponents[i]; } for (int i = 0; i < other.coefficients.length; i++) { boolean found = false; for (int j = 0; j < newExponents.length; j++) { if (newExponents[j] == other.exponents[i]) { newCoefficients[j] += other.coefficients[i]; found = true; break; } } if (!found) { for (int k = 0; k < newExponents.length; k++) { if (newExponents[k] == 0) { newCoefficients[k] = other.coefficients[i]; newExponents[k] = other.exponents[i]; break; } } } } return new Polynomial(newCoefficients, newExponents); } @Override public String toString() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < coefficients.length; i++) { if (coefficients[i] != 0) { if (i > 0 && coefficients[i] > 0) { sb.append(" + "); } sb.append(coefficients[i]); if (exponents[i] > 0) { sb.append("x^").append(exponents[i]); } } } return sb.toString(); } } public class PolynomialSum { public static void main(String[] args) { int[] coefficients1 = {3, 2, 5}; int[] exponents1 = {2, 1, 0}; Polynomial poly1 = new Polynomial(coefficients1, exponents1); int[] coefficients2 = {1, 4}; int[] exponents2 = {2, 1}; Polynomial poly2 = new Polynomial(coefficients2, exponents2); Polynomial result = poly1.add(poly2); System.out.println("Polynomial 1: " + poly1); System.out.println("Polynomial 2: " + poly2); System.out.println("Sum: " + result); } } ``` #### 3. 图形输出 ```java public class PatternPrinting { public static void main(String[] args) { // 打印一个简单的三角形 for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) { System.out.print("*"); } System.out.println(); } } } ``` #### 4. 数组遍历和冒泡排序 ```java import java.util.Arrays; public class ArrayOperations { public static void main(String[] args) { int[] array = {5, 3, 8, 4, 2}; // 数组遍历 System.out.println("Original Array:"); for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); // 冒泡排序 for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - i - 1; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } System.out.println("Sorted Array:"); for (int num : array) { System.out.print(num + " "); } System.out.println(); } } ``` ### 实验报告撰写 #### 实验目的 本次实验旨在掌握 Java 语言的数据类型、变量、控制结构及数组的使用。通过完成多项式求和、图形输出、数组遍历和排序等任务,加深对 Java 基础知识的理解和应用能力。 #### 实验环境 - **操作系统**:[具体操作系统] - **开发工具**:[IDE 名称及版本] - **编程语言**:Java #### 实验步骤 1. **数据类型、变量和常量的声明初始化**:声明并初始化不同类型的变量和常量,观察其输出结果。 2. **多项式求和**:定义多项式类,实现多项式的加法运算,并输出结果。 3. **图形输出**:使用嵌套循环打印简单的图形,如三角形。 4. **数组遍历和冒泡排序**:定义数组,对数组进行遍历操作,然后使用冒泡排序算法对数组进行排序,并输出排序前后的数组#### 实验结果 - **数据类型、变量和常量**:成功声明并初始化不同类型的变量和常量,输出结果符合预期。 - **多项式求和**:实现了多项式的加法运算,输出了正确的求和结果。 - **图形输出**:成功打印出简单的三角形图形。 - **数组遍历和冒泡排序**:完成了数组的遍历和冒泡排序操作,输出了排序前后的数组#### 实验总结 通过本次实验,对 Java 语言的数据类型、变量、控制结构及数组有了更深入的理解。掌握了如何声明和初始化变量、常量,如何使用流程控制语句解决问题,以及如何对数组进行操作。同时,也了解了冒泡排序算法的实现原理。在实验过程中,遇到了一些问题,如多项式求和时指数相同项的合并,通过查阅资料和调试代,最终解决了问题。 #### 实验问题与改进 在多项式求和的实现中,代的复杂度较高,可以考虑使用更高效的数据结构来优化。同时,图形输出部分可以尝试打印更复杂的图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值