第一章:Java基础语法

第一个小案例HelloWorld

  1. /*
  2. Java程序中最基本的组成单位是类。
  3. 类的定义格式:
  4. public class 类名{
  5. }
  6. */
  7. public class HelloWorld{
  8. /*
  9. 这是main方法
  10. main是程序入口,代码执行是从main方法开始的
  11. */
  12. public static void main(String[] args){
  13. // 这里是输出语句
  14. System.out.println("HelloWorld");
  15. }
  16. }

一、常量类型和数据类型

1. 关键字

关键字的字母都是小写

System.out.println(); 输出内容并换行 System.out.print(); 输出内容不换行

2. 常量

image.png

  1. public class HelloWorld{
  2. public static void main(String[] args){
  3. //字符串常量
  4. System.out.println("我是字符串");
  5. System.out.println("----------");
  6. //整数
  7. System.out.println(666);
  8. System.out.println("----------");
  9. //小数
  10. System.out.println(13.14);
  11. System.out.println("----------");
  12. //字符常量
  13. System.out.println('A');
  14. System.out.println("----------");
  15. //布尔值
  16. System.out.println(true);
  17. System.out.println("----------");
  18. //空值 null 空值不能直接输出
  19. }
  20. }

3. 数据类型

image.png
image.png

  1. public class HelloWorld{
  2. public static void main (String[] args){
  3. int a = 666;
  4. System.out.println(a);
  5. a = 888;
  6. System.out.println(a);
  7. }
  8. }

long类型的变量定义的时候,为了防止整数过大,后面要加L

long a = 10000000L;

float类型的变量定义的时候,为了防止不兼容,后边要加F

float a = 13.14F;

4. 类型转换

自动类型转换

image.png

强制类型转换

image.png
注意的是强转数据小数点后边的数值会丢失

二、运算符

1. 算数运算符

image.png

  1. public class HelloWorld{
  2. public static void main (String[] args){
  3. int a = 6;
  4. int b = 4;
  5. System.out.println(a + b);
  6. System.out.println(a - b);
  7. System.out.println(a * b);
  8. System.out.println(a / b);
  9. System.out.println(a % b);
  10. //除法得到的是商 取余得到的是余数
  11. //整数相除只能得到整数,要想得到小数,必须有浮点数参与
  12. System.out.println(6.0 / 4);
  13. }
  14. }

2. 字符的“+”操作

image.png

3. 字符串的“+”操作

image.png

4. 赋值运算符

image.png

5. 自增自减运算符

image.png

6. 关系运算符

image.png

7. 逻辑运算符

image.png

8. 短路逻辑运算符

image.png

  1. public class HelloWorld{
  2. /*
  3. 三元运算符
  4. 格式:
  5. 关系表达式 ? 表达式1 : 表达式2;
  6. 例子:
  7. a > b ? a : b;
  8. 执行流程:
  9. 首先计算关系表达式的结果
  10. 结果为true,表达式1的值就是最终结果
  11. 结果为false,表达式2的值就是最终结果
  12. */
  13. public static void main(String[] atgs){
  14. int a = 10;
  15. int b = 20;
  16. int max = a > b ? a : b;
  17. System.out.println(max);
  18. }
  19. }

三、数据输入

1. Scanner使用的基本步骤

  • 导包

    import java.util.Scanner; 导包必须要出现在类定义的上边

  • 创建对象

    Scanner sc = new Scanner(System.in);

  • 接收数据

    int x = sc.nextInt();

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main(String[] args){
  4. //创建对象
  5. Scanner sc = new Scanner(System.in);
  6. //接收数据
  7. int x = sc.nextInt();
  8. //输出数据
  9. System.out.println("x:"+x);
  10. }
  11. }

2. 三元运算符加数据输入拓展

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main(String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. System.out.println("请输入第一个数值:");
  6. int a = sc.nextInt();
  7. System.out.println("请输入第二个数值:");
  8. int b = sc.nextInt();
  9. System.out.println("请输入第三个数值:");
  10. int c = sc.nextInt();
  11. int max = a > b ? a : b;
  12. max = b>c ? b :c;
  13. System.out.println("max是:"+max);
  14. }
  15. }

四、判断语句

1. if语句1(单一if)

image.png

1.2 if语句2(加上else判断)

image.png

1.3 if语句3(多次判断)

image.png

2. 奇偶数判断

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main(String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. System.out.println("请输入一个整数:");
  6. int a = sc.nextInt();
  7. //这里对变量a取余,如果能被2整除是偶数,不能的话就是奇数
  8. if (a%2 == 0){
  9. System.out.println("该数是偶数");
  10. }else{
  11. System.out.println("该数是奇数");
  12. }
  13. System.out.println("语句结束了");
  14. }
  15. }

3. 简单案例

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main(String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. System.out.println("请输入考试分数(0-100):");
  6. int a = sc.nextInt();
  7. if (a>100 || a<0){
  8. System.out.println("请输入(0-100)");
  9. }else if(a >=95 && a <= 100){
  10. System.out.println("奖励山地自行车一辆");
  11. }else if(a>=90 && a<=94){
  12. System.out.println("奖励游乐场玩一次");
  13. }else if(a>=80 && a<=89){
  14. System.out.println("奖励变形金刚玩具一个");
  15. }else{
  16. System.out.println("奖励胖揍一顿");
  17. }
  18. }
  19. }

涉及到运算符和判断语句的运用

4. swich语句

image.png

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main (String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. System.out.println("请输入1-3");
  6. int a = sc.nextInt();
  7. switch (a){
  8. case 1:
  9. System.out.println("你输入的是星期一");
  10. break;
  11. case 2:
  12. System.out.println("你输入的是星期二");
  13. break;
  14. case 3:
  15. System.out.println("你输入的是星期三");
  16. break;
  17. default:
  18. System.out.println("你输入的有误");
  19. //default在最后的话 default里面的break可以省略
  20. break;
  21. }
  22. }
  23. }

4.1 case穿透案例

  1. //一年12个月份,输入一个月份让其显示对应的季节
  2. import java.util.Scanner;
  3. public class HelloWorld{
  4. public static void main (String[] args){
  5. Scanner sc = new Scanner(System.in);
  6. System.out.println("请输入1-12的月份");
  7. int a = sc.nextInt();
  8. switch (a){
  9. case 1:
  10. case 11:
  11. case 12:
  12. System.out.println("冬季");
  13. break;
  14. case 2:
  15. case 3:
  16. case 4:
  17. System.out.println("春季");
  18. break;
  19. case 5:
  20. case 6:
  21. case 7:
  22. System.out.println("夏季");
  23. break;
  24. case 8:
  25. case 9:
  26. case 10:
  27. System.out.println("秋季");
  28. break;
  29. default:
  30. System.out.println("你输入的有误");
  31. }
  32. }
  33. }

五、循环结构

1. for循环

image.png

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main (String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. int a;
  6. for (a=1;a<10;a++){
  7. System.out.println(a);
  8. }
  9. }
  10. }

1.2 求和

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main (String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. int c=0;
  6. int a;
  7. for (a=1;a<10;a++){
  8. c += a;
  9. System.out.println(c);
  10. }
  11. System.out.println(c);
  12. }
  13. }

1.3 求偶数和

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main (String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. int c=0;
  6. int a;
  7. for (a=1;a<10;a++){
  8. if (a%2 == 0){
  9. c += a;
  10. System.out.println(c);
  11. }
  12. }
  13. System.out.println(c);
  14. }
  15. }

1.4 进阶(对100-999的数字进行判断,个、十、百每位数字的立方和等于原数字,则条件成立输出结果)

  1. import java.util.Scanner;
  2. public class HelloWorld{
  3. public static void main (String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. for (int c=100; c<=999; c++){
  6. int g = c%10;
  7. int s = c/10%10;
  8. int b = c/100;
  9. if (g*g*g + s*s*s + b*b*b == c){
  10. System.out.println("符合条件:"+c);
  11. }
  12. }
  13. }
  14. }

2. while循环

image.png

  1. public class HelloWorld{
  2. public static void main (String[] args){
  3. int a = 1;
  4. while (a<10){
  5. System.out.println(a);
  6. a++;
  7. }
  8. }
  9. }

2.2 案例

image.png

  1. public class HelloWorld{
  2. public static void main (String[] args){
  3. double a = 0.1;
  4. int c = 0;
  5. while (a<=8844430){
  6. c++;
  7. a *= 2;
  8. }
  9. System.out.println("一共需要折叠:"+c+"次,长度是:"+a);
  10. }
  11. }

3. do…while循环

image.png

  1. public class HelloWorld{
  2. public static void main (String[] args){
  3. int c = 0;
  4. do {
  5. System.out.println(c);
  6. c++;
  7. }while (c<10);
  8. }
  9. }

4. 三种循环的区别和死循环

image.png

  1. public class HelloWorld{
  2. public static void main (String[] args){
  3. //--------------------------------第一种区别
  4. //for循环
  5. for (int c=5; c<5; c++){
  6. System.out.println(c);
  7. }
  8. System.out.println("以上for循环");
  9. //while循环
  10. int c = 5;
  11. while (c<5){
  12. System.out.println(c);
  13. c++;
  14. }
  15. System.out.println("以上while循环");
  16. //do...while循环
  17. int b = 5;
  18. do {
  19. System.out.println(b);
  20. b++;
  21. }while (b<5);
  22. System.out.println("以上do...while循环");
  23. System.out.println("");
  24. //--------------------------------第二种区别
  25. //for循环
  26. for (int g=1; g<5; g++){
  27. System.out.println("我是变量g我只能在这里显示"+g);
  28. }
  29. System.out.println("以上for循环");
  30. //while循环
  31. int f = 1;
  32. while (f<5){
  33. System.out.println("我是变量f我可以全局显示"+f);
  34. f++;
  35. }
  36. System.out.println("循环体外"+f);
  37. System.out.println("以上while循环");
  38. //--------------------------------死循环
  39. for(;;){
  40. System.out.println("for");
  41. }
  42. while(true){
  43. System.out.println("while");
  44. }
  45. do{
  46. System.out.pirntln("di...while");
  47. }while(true);
  48. }
  49. }

5. 跳转控制语句

image.png

6.循环嵌套

  1. //取出一天的小时和分钟
  2. public class HelloWorld{
  3. public static void main (String[] args){
  4. for (int hour = 0; hour<24; hour++){
  5. int minute = 0;
  6. do{
  7. System.out.println(hour+"时"+minute+"分");
  8. minute++;
  9. }while (minute<60);
  10. }
  11. }
  12. }

六、Random随机数

image.png

案例:猜数字小游戏

  1. //需求:随机生成1-100的数字当作谜底 让用户输入判断是否等于谜底 给出相应的提示 直到结果等于66停止
  2. import java.util.Random;
  3. import java.util.Scanner;
  4. public class HelloWorld{
  5. public static void main(String[] args){
  6. Random r = new Random();
  7. int a = r.nextInt(100)+1;
  8. while(true){
  9. Scanner sc = new Scanner(System.in);
  10. System.out.println("请输入要猜的数字(1-100)");
  11. int c = sc.nextInt();
  12. if (c<a){
  13. System.out.println("数字"+c+"猜小了");
  14. }else if (c>a){
  15. System.out.println("数字"+c+"猜大了");
  16. }else{
  17. System.out.println("数字"+c+"恭喜你猜对了");
  18. break;
  19. }
  20. }
  21. }
  22. }

七、数组

1. 数组(array)是用与存储多个相同类型数据的存储模型

image.png

2. 数组的初始化.

1. 动态初始化

image.png

  1. package com.iteima;
  2. public class Array {
  3. public static void main(String[] args){
  4. int[] arr = new int[3];
  5. /*
  6. 左边:
  7. int:定义数组元素类型是int类型
  8. []:说明定义的是一个数组
  9. arr:定义的数组变量名
  10. 右边:
  11. new:为数组申请新的内存空间
  12. int:定义数组的元素类型是int
  13. []:这是一个数组
  14. 3:数组的长度,即数组的成员数
  15. */
  16. }
  17. }

2. 静态初始化

image.png

3. 数组的访问

image.png

  1. package com.iteima;
  2. public class Array {
  3. public static void main(String[] args){
  4. int[] arr = new int[3];
  5. //输出数组名,改名字是内存申请创建的
  6. System.out.println(arr);
  7. //输出数组里的元素的值
  8. System.out.println(arr[0]);
  9. System.out.println(arr[1]);
  10. System.out.println(arr[2]);
  11. }
  12. }

4. 内存分配

image.png
image.png

5. 数组操作常见的两个小问题

image.png

6. 数组的常见操作

1. 遍历(arr.length可以获取数组的长度)

  1. package com.iteima;
  2. public class Array{
  3. public static void main(String[] args){
  4. int[] arr = {1,2,3};
  5. for(int a=0;a<arr.length;a++){
  6. System.out.println(arr[a]);
  7. }
  8. }
  9. }

2. 最大值和最小值

  1. public class Array{
  2. public static void main(String[] args){
  3. int[] arr = {102,45,98,73,60};
  4. int max = arr[0];
  5. int min = arr[0];
  6. for(int a=1; a<arr.length; a++){
  7. if (arr[a]>max){
  8. max = arr[a];
  9. }else if (arr[a]<min){
  10. min = arr[a];
  11. }
  12. }
  13. System.out.println("最大值是:"+max);
  14. System.out.println("最小值是:"+min);
  15. }
  16. }

七、方法

1. 什么是方法

image.png

2. 方法的定义和调用

  • 案例一: ```java package com.iteima;

public class Array { public static void main(String[] args) { //方法的调用 isEvenNumber(); }

  1. //方法的定义
  2. public static void isEvenNumber() {
  3. int number = 9;
  4. if (number % 2 == 0) {
  5. System.out.println("该数字是偶数" + number);
  6. } else {
  7. System.out.println("该数字是奇数" + number);
  8. }
  9. }

}

  1. - 案例二:
  2. ```java
  3. package com.iteima;
  4. import java.util.Scanner;
  5. public class Array {
  6. public static void main(String[] args) {
  7. getMax();
  8. }
  9. public static void getMax() {
  10. Scanner sc = new Scanner(System.in);
  11. System.out.println("请输入a的值:");
  12. int a = sc.nextInt();
  13. Scanner sc2 = new Scanner(System.in);
  14. System.out.println("请输入b的值:");
  15. int b = sc2.nextInt();
  16. if (a > b) {
  17. System.out.println(a);
  18. } else {
  19. System.out.println(b);
  20. }
  21. }
  22. }

3. 带参数的方法的定义和调用

  • 定义格式image.png
  • 调用格式

image.png

4. 形参和实参

image.png

  • 案例 ```java package com.iteima;

public class Array { public static void main(String[] args) { getMax(10, 20); }

  1. public static void getMax(int a, int b) {
  2. if (a > b) {
  3. System.out.println(a);
  4. } else {
  5. System.out.println(b);
  6. }
  7. }

}

  1. <a name="HqVv0"></a>
  2. #### 5. 带返回值的方法的定义和调用
  3. - 定义
  4. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/5358492/1617980123954-d5955fc5-1c31-4194-9871-b6accf89baf7.png#crop=0&crop=0&crop=1&crop=1&height=382&id=lgRN7&margin=%5Bobject%20Object%5D&name=image.png&originHeight=382&originWidth=654&originalType=binary&ratio=1&rotation=0&showTitle=false&size=120962&status=done&style=none&title=&width=654)
  5. - 调用
  6. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/5358492/1617980216999-12c894da-66f4-4417-9c3d-d2d6936f1173.png#crop=0&crop=0&crop=1&crop=1&height=268&id=tOhpl&margin=%5Bobject%20Object%5D&name=image.png&originHeight=268&originWidth=508&originalType=binary&ratio=1&rotation=0&showTitle=false&size=90373&status=done&style=none&title=&width=508)
  7. - 案例
  8. ```java
  9. public class Array {
  10. public static void main(String[] args) {
  11. System.out.println(getBool(20));
  12. }
  13. public static boolean getBool(int a) {
  14. if (a % 2 == 0) {
  15. return (true);
  16. } else {
  17. return (false);
  18. }
  19. }
  20. }

6. 方法的注意事项

image.png

7. 方法重载

image.png

  1. public class Array {
  2. public static void main(String[] args) {
  3. System.out.println(compare(10, 20));
  4. System.out.println(compare((byte)10,(byte)20));
  5. System.out.println(compare((short)10,(short)20));
  6. System.out.println(compare(10L, 20L));
  7. }
  8. public static boolean compare(int a, int b) {
  9. System.out.println("int");
  10. return (a == b);
  11. }
  12. public static boolean compare(long a, long b) {
  13. System.out.println("long");
  14. return a == b;
  15. }
  16. public static boolean compare(byte a, byte b) {
  17. System.out.println("byte");
  18. return a == b;
  19. }
  20. public static boolean compare(short a, short b) {
  21. System.out.println("short");
  22. return a == b;
  23. }
  24. }

8.方法的参数传递

  • 基本类型的参数,形参值改变,不会影响实参的值

    1. public class Array{
    2. public static void main(String[] args){
    3. int number=100;
    4. System.out.println("调用前:"+number);
    5. change(number);
    6. System.out.println("调用后:"+number);
    7. }
    8. public static void change(int number){
    9. number = 200;
    10. }
    11. }
  • 引用类型的参数,形参值改变,会影响实参的值

    1. public class Array{
    2. public static void main(String[] args){
    3. int[] arr={10,20,30};
    4. System.out.println("调用前:"+arr[0]);
    5. change(arr);
    6. System.out.println("调用后:"+arr[0]);
    7. }
    8. public static void change(int[] arr){
    9. arr[0] = 200;
    10. }
    11. }
  • 案例:数组遍历使用方法调用来实现

    1. //需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55]
    2. public class Array {
    3. public static void main(String[] args) {
    4. int[] arr = {11, 22, 33, 44, 55};
    5. printArray(arr);
    6. }
    7. /*
    8. 写方法首先需要明确的两件事
    9. 一:该方法是否具有返回值,如果不具备则默认void
    10. 二:该方法的调用参数是什么类型
    11. */
    12. public static void printArray(int[] arr) {
    13. System.out.print("[");
    14. for (int a = 0; a < arr.length; a++) {
    15. if (a == arr.length - 1) {
    16. System.out.print(arr[a]);
    17. } else {
    18. System.out.print(arr[a] + ", ");
    19. }
    20. }
    21. System.out.println("]");
    22. }
    23. }
  • 案例:数组元素最大值的获取,使用方法调用来实现

    1. public class Array {
    2. public static void main(String[] args) {
    3. int[] arr = {13, 52, 43, 99, 106};
    4. printArray(arr);
    5. }
    6. /*
    7. 写方法首先需要明确的两件事
    8. 一:该方法是否具有返回值,如果不具备则默认void
    9. 二:该方法的调用参数是什么类型
    10. */
    11. public static void printArray(int[] arr) {
    12. int max = arr[0];
    13. for (int a = 1; a < arr.length; a++) {
    14. if (max < arr[a]) {
    15. max = arr[a];
    16. }
    17. }
    18. System.out.println("最大值是:" + max);
    19. }
    20. }

    八、Debug调错

    image.png
    image.png

    九、基础知识巩固练习

    1.减肥计划 if 版本

    1. //输入星期数,显示今天的减肥活动
    2. /*
    3. 周一:跑步
    4. 周二:游泳
    5. 周三:慢走
    6. 周四:动感单车
    7. 周五:拳击
    8. 周六:爬山
    9. 周日:好好吃一顿
    10. */
    11. import java.util.Scanner;
    12. public class Array{
    13. public static void main(String[] args){
    14. Scanner sc = new Scanner(System.in);
    15. System.out.println("请输入星期数(1-7):");
    16. int week = sc.nextInt();
    17. if (week == 1 ){
    18. System.out.println("今天的活动是跑步");
    19. }else if (week == 2){
    20. System.out.println("今天的活动是游泳");
    21. }else if (week == 3){
    22. System.out.println("今天的活动是慢走");
    23. }else if (week == 4){
    24. System.out.println("今天的活动是动感单车");
    25. }else if (week == 5){
    26. System.out.println("今天的活动是拳击");
    27. }else if (week == 6){
    28. System.out.println("今天的活动是爬山");
    29. }else if (week == 7){
    30. System.out.println("今天的活动是好好吃一顿");
    31. }else {
    32. System.out.println("请输入正确的星期数(1-7)");
    33. }
    34. }
    35. }

    2. 减肥计划 switch 版本

    1. //输入星期数,显示今天的减肥活动
    2. /*
    3. 周一:跑步
    4. 周二:游泳
    5. 周三:慢走
    6. 周四:动感单车
    7. 周五:拳击
    8. 周六:爬山
    9. 周日:好好吃一顿
    10. */
    11. import java.util.Scanner;
    12. public class Array{
    13. public static void main(String[] args){
    14. Scanner sc = new Scanner(System.in);
    15. System.out.println("请输入星期数(1-7):");
    16. int week = sc.nextInt();
    17. switch(week){
    18. case 1:
    19. System.out.println("今天的活动是跑步");
    20. break;
    21. case 2:
    22. System.out.println("今天的活动是游泳");
    23. break;
    24. case 3:
    25. System.out.println("今天的活动是慢走");
    26. break;
    27. case 4:
    28. System.out.println("今天的活动是动感单车");
    29. break;
    30. case 5:
    31. System.out.println("今天的活动是拳击");
    32. break;
    33. case 6:
    34. System.out.println("今天的活动是爬山");
    35. break;
    36. case 7:
    37. System.out.println("今天的活动是好好吃一顿");
    38. break;
    39. default:
    40. System.out.println("请输入正确的星期数(1-7)");
    41. }
    42. }
    43. }

    3. 逢7过 for 和 取余

    ```java //1-100的数值,依次加1,当数值个位为7,十位为7,或者7的倍数时都要输出过,其余输出数值

public class Array{
public static void main(String[] args){ for (int i=1;i<101;i++){ if (i%7 == 0 || i%10 ==7 || i/10%10 == 7){ System.out.println(“过”); }else { System.out.println(i); } } } }

  1. <a name="MDW7u"></a>
  2. ### 4. 不死神兔 动态数组 和 赋值
  3. ```java
  4. //有一对兔子,出生后的第3个月起每个月都生一对,小兔子到第三个月往后每月再生一对,假如兔子都不死,到第十二个月兔子有多少对
  5. /*
  6. 分析:
  7. 第一个月:1
  8. 第二个月:1
  9. 第三个月:2
  10. 第四个月:3
  11. 第五个月:5
  12. ```
  1. 规律:第三个月开始,当月数据是上两个月数据之和

*/

public class Array { public static void main(String[] args) { int[] arr = new int[20]; arr[0] = 1; arr[1] = 1; System.out.println(“第1个月:1”); System.out.println(“第2个月:1”); for (int i = 2; i < 12; i++) { arr[i] = arr[i - 1] + arr[i - 2]; System.out.println(“第” + (i + 1) + “个月:” + arr[i]); } } }

  1. <a name="zRKDQ"></a>
  2. ### 5. 百钱百鸡 穷举思维 循环的嵌套
  3. ```java
  4. //有100文钱,其中公鸡5文钱1只,母鸡3文钱1只,鸡雏1文钱3只,要想买100只鸡且刚好花了100文,问每种鸡各多少只
  5. /*
  6. 分析:公鸡x,母鸡y,鸡雏z
  7. x+y+z = 100只
  8. 5*x+3*x+z/3 = 100文
  9. 0<=x<=20
  10. 0<=y<=33
  11. 0<=z<=100
  12. ```
  1. 规律:第三个月开始,当月数据是上两个月数据之和

*/

public class Array { public static void main(String[] args) { for (int x = 0; x < 21; x++) { for (int y = 0; y < 34; y++) { int z = (100 - x - y); if (z % 3 == 0 && x 5 + y 3 + z / 3 == 100) { System.out.println(“公鸡” + x + “只,母鸡” + y + “只,鸡雏” + z + “只”); } } } } }

  1. <a name="IfOyy"></a>
  2. ### 6. 数组元素求和 判断语句和取余
  3. ```java
  4. //有一个数组{68,27,95,88,171,996,51,210} 需要的元素个位十位都不能是7,且只能是偶数,求和
  5. /*
  6. 分析:
  7. 定义一个变量
  8. 两层判断:第一层、判断7;第二层、判断偶数,并将符合条件的元素值加到变量里面
  9. */
  10. public class Array {
  11. public static void main(String[] args) {
  12. int sum = 0;
  13. int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};
  14. for (int a = 0; a < arr.length; a++) {
  15. if (arr[a] % 10 == 7 || arr[a] / 10 % 10 == 7 || arr[a] % 2 != 0) {
  16. } else if (arr[a] % 2 == 0) {
  17. sum += arr[a];
  18. System.out.println(arr[a]);
  19. }
  20. }
  21. System.out.println("最后的结果是:" + sum);
  22. }
  23. }

7.数组内容相同 方法调用静态数组

  1. //设计一个方法,用于比较两个数组的内容是否相同
  2. /*
  3. 分析:
  4. 1. 定义两个数组,静态初始化
  5. 2. 定义一个方法,用于比较两个数组的内容是否相同
  6. 返回值类型:boolean
  7. 参数:int[] arr1,int[] arr2
  8. 3. 比较数组长度,比较数组每个元素的值
  9. */
  10. public class Array{
  11. public static void main(String[] args){
  12. int[] arr1 = {68,28,95};
  13. int[] arr2 = {68,27,95};
  14. System.out.println(boolArray(arr1,arr2));
  15. }
  16. public static boolean boolArray(int[] arr1,int[] arr2){
  17. if (arr1.length == arr2.length){
  18. for (int l=0;l<arr1.length;l++){
  19. if (arr1[l] != arr2[l]){
  20. return false;
  21. }
  22. }
  23. return true;
  24. }else{
  25. return false;
  26. }
  27. }
  28. }

8. 数组的元素值查找 break跳出循环

  1. //已知一个数组arr={19,28,37,46,50};键盘录入一个数据,查找该数据在数组种的索引,不存在返回-1,存在返回索引值
  2. /*
  3. 分析:
  4. 1. 定义数组静态初始化,定义索引,定义键盘录入数据
  5. 2. for循环判断录入数据和元素值是否相同 有相同返回索引 没想同返回-1
  6. */
  7. import java.util.Scanner;
  8. public class Array {
  9. public static void main(String[] args) {
  10. int[] arr = {19, 28, 37, 46, 50};
  11. int index = -1;
  12. Scanner sc = new Scanner(System.in);
  13. System.out.print("请输入一个数值:");
  14. int keyword = sc.nextInt();
  15. for (int a = 0; a < arr.length; a++) {
  16. if (arr[a] == keyword) {
  17. index = a;
  18. break;
  19. }
  20. }
  21. System.out.println(index);
  22. }
  23. }

9. 数组元素的反转 数组的重定义

  1. //已知一个数组arr={19,28,37,46,50};用方法程序实现数组元素值的反转
  2. /*
  3. 分析:
  4. 1. 循环交换数组内的数值,注意开始和结束索引比较
  5. 2. 拿新的数组值去遍历输出
  6. */
  7. import java.util.Scanner;
  8. public class Array{
  9. public static void main(String[] args){
  10. int[] arr = {19,28,37,46,50};
  11. fanzhuan(arr);
  12. bianli(arr);
  13. }
  14. public static void fanzhuan(int[] arr){
  15. for (int start=0,end=arr.length-1;start<=end;start++,end--){
  16. int tmp = arr[start];
  17. arr[start] = arr[end];
  18. arr[end] = tmp;
  19. }
  20. }
  21. public static void bianli(int[] arr){
  22. System.out.print("[");
  23. for (int a=0;a<arr.length;a++){
  24. if (a == arr.length-1){
  25. System.out.print(arr[a]);
  26. }else {
  27. System.out.print(arr[a]+", ");
  28. }
  29. }
  30. System.out.println("]");
  31. }
  32. }

10. 评委打分

image.png

  1. import java.util.Scanner;
  2. public class Array {
  3. public static void main(String[] args) {
  4. int[] arr = new int[6];
  5. for (int a = 0; a < 6; a++) {
  6. Scanner sc = new Scanner(System.in);
  7. System.out.println("请输入第" + (a + 1) + "个评委的打分");
  8. int keyword = sc.nextInt();
  9. arr[a] = keyword;
  10. }
  11. int max = getMax(arr);
  12. int small = getSmall(arr);
  13. int sum = getSum(arr);
  14. int average = (sum - small - max) / arr.length;
  15. System.out.println("平均分是:" + average);
  16. }
  17. public static int getMax(int[] arr) {
  18. int max = arr[0];
  19. for (int a = 1; a < arr.length; a++) {
  20. if (max < arr[a]) {
  21. max = arr[a];
  22. }
  23. }
  24. return max;
  25. }
  26. public static int getSmall(int[] arr) {
  27. int small = arr[0];
  28. for (int a = 1; a < arr.length; a++) {
  29. if (small > arr[a]) {
  30. small = arr[a];
  31. }
  32. }
  33. return small;
  34. }
  35. public static int getSum(int[] arr) {
  36. int sum = 0;
  37. for (int a = 0; a < arr.length; a++) {
  38. sum += arr[a];
  39. }
  40. return sum;
  41. }
  42. }