挖穿Android第四天

###04.01_Java语言基础(循环结构概述和for语句的格式及其使用)

  • A:循环结构的分类
    • for,while,do…while
  • B:循环结构for语句的格式:
  •   for(初始化表达式;条件表达式;循环后的操作表达式) {
      	循环体;
      }
    
  • C执行流程:
    • a:执行初始化语句
    • b:执行判断条件语句,看其返回值是true还是false
      • 如果是true,就继续执行
      • 如果是false,就结束循环
    • c:执行循环体语句;
    • d:执行循环后的操作表达式
    • e:回到B继续。
  • D:案例演示
    • 在控制台输出10次"helloworld"
      案例:
      class Demo1_For {
      public static void main(String[] args) {
      /*
      //在控制输出10次helloworld,这样做不推荐,因为复用性太差
      System.out.println(“helloworld”);
      //…
      */
      for (int i = 1;i <= 10 ;i++ ) {
      System.out.println(“helloworld”);
      }
      }
      }

###04.02_Java语言基础(循环结构for语句的练习之获取数据)

  • A:案例演示
    • 需求:请在控制台输出数据1-10
    • 需求:请在控制台输出数据10-1
  • B:注意事项
    • a:判断条件语句无论简单还是复杂结果是boolean类型。
    • b:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
    • c:一般来说:有左大括号就没有分号,有分号就没有左大括号
      案例:
      class Test1_For {
      public static void main(String[] args) {
      for (int i = 1;i <= 10 ;i++ ){
      System.out.println(“i = " + i);
      }
      System.out.println(”-----------------------");

      for (int i = 10;i >= 1 ;i-- ) {
      System.out.println("i = " + i);
      }
      }
      }

###04.03_Java语言基础(循环结构for语句的练习之求和思想)

  • A:案例演示
    • 需求:求出1-10之间数据之和
  • B:学生练习
    • 需求:求出1-100之间偶数和
    • 需求:求出1-100之间奇数和
      /*
      分析:1-10数据的和
      0 + 1
      1 + 2
      3 + 3
      6

      */
      案例:
      class Test2_For {
      public static void main(String[] args) {
      //1-10的和
      /int sum = 0;
      for (int i = 1;i <= 10 ;i++ ) {
      sum = sum + i;
      }

      System.out.println("sum = " + sum);
      /

      //1-100的偶数和
      /int sum = 0;
      for (int i = 1;i <= 100 ;i++ ) {
      if (i % 2 == 0) {
      sum = sum + i;
      }
      }

      System.out.println("sum = " + sum);
      /

      //1-100的奇数和
      int sum = 0;
      for (int i = 1;i <= 100 ;i+=2 ) {
      /if (i % 2 != 0) {
      sum = sum + i;
      }
      /
      sum = sum + i;
      }

      System.out.println("sum = " + sum);
      }
      }

###04.04_Java语言基础(循环结构for语句的练习之水仙花)

  • A:案例演示

    • 需求:在控制台输出所有的”水仙花数”

    • 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

    • 举例:153就是一个水仙花数。

    • 153 = 111 + 555 + 333 = 1 + 125 + 27 = 153
      案例:
      /*

  • A:案例演示

    • 需求:在控制台输出所有的”水仙花数”

    • 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

    • 举例:153就是一个水仙花数。

    • 153 = 111 + 555 + 333 = 1 + 125 + 27 = 153

    分析:
    1,100 - 999
    2,获取每一个位数的值,百位,十位,个位
    3,判断各个位上的立方和是否等于这个数,如果等于打印
    */
    class Test3_Flower {
    public static void main(String[] args) {
    for (int i = 100;i <= 999 ;i++ ) { //获取100到999之间的数
    int ge = i % 10; //123 % 10
    int shi = i / 10 % 10; //12 % 10;
    int bai = i / 10 / 10 % 10; //1 % 10

    if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
    System.out.println(i);
    }
    }
    }
    }

###04.05_Java语言基础(循环结构for语句的练习之统计思想)

  • A:案例演示
    • 需求:统计”水仙花数”共有多少个
      案例:
      /*
  • A:案例演示
    • 需求:统计”水仙花数”共有多少个
      分析:
      1,需要有一个变量记录住水仙花数的个数
      2,获取到所有的3位数
      3,判断是否满足水仙花数
      4,如果满足条件,计数器就自增
      */
      class Test4_FlowerCount {
      public static void main(String[] args) {
      int count = 0;

      for (int i = 100;i <= 999 ;i++ ) {
      int ge = i % 10;
      int shi = i / 10 % 10;
      int bai = i / 10 / 10;

      if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai) {
      count ++; //满足条件就自增,计数器思想
      }
      }

      System.out.println(count);
      }
      }

###04.06_Java语言基础(循环结构while语句的格式和基本使用)

  • A:循环结构while语句的格式:
  •   while循环的基本格式:
      while(判断条件语句) {
      	循环体语句;
      }
      
      完整格式:
      
      初始化语句;
      while(判断条件语句) {
      	 循环体语句;
      	 控制条件语句;
     }
    
  • B:执行流程:
    • a:执行初始化语句
    • b:执行判断条件语句,看其返回值是true还是false
      • 如果是true,就继续执行
      • 如果是false,就结束循环
    • c:执行循环体语句;
    • d:执行控制条件语句
    • e:回到B继续。
  • C:案例演示
    • 需求:请在控制台输出数据1-10
      案例:
      class Demo1_While {
      public static void main(String[] args) {
      int x = 1;
      while (x <= 10) {
      System.out.println("x = " + x);
      x++;
      }
      }
      }

###04.07_Java语言基础(循环结构while语句的练习)

  • A:求和思想
    • 求1-100之和
  • B:统计思想
    • 统计”水仙花数”共有多少个
      案例:
      class Test1_While {
      public static void main(String[] args) {
      /*

      • A:求和思想
        • 求1-100之和
      • B:统计思想
        • 统计”水仙花数”共有多少个
          */

      //求1-100之和
      /int sum = 0;
      int i = 1;
      while (i <= 100) {
      sum += i; //sum = sum + i;
      i++; //让变量i自增
      }

      System.out.println("sum = " + sum);
      /

      //统计”水仙花数”共有多少个
      int count = 0; //计数器
      int i = 100;
      while (i <= 999) {
      int ge = i % 10;
      int shi = i / 10 % 10;
      int bai = i / 100;

      if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai) {
      count ++;
      }

      i++;
      }

      System.out.println(“count =” + count);

      //某屌丝为了追求女神,写了一段代码示爱,但是女神也会java,改动一下把屌丝拒绝
      int j = 1;
      //while (j <= 10000) ;{
      while (j <= 10000) {
      System.out.println(“I Love You!!!”);
      j++;
      }
      }
      }

###04.08_Java语言基础(循环结构do…while语句的格式和基本使用)

  • A:循环结构do…while语句的格式:
  •   do {
      	循环体语句;
      }while(判断条件语句);
      
      完整格式;
      初始化语句;
      do {
      	循环体语句;
      	控制条件语句;
      }while(判断条件语句);
    
  • B:执行流程:
    • a:执行初始化语句
    • b:执行循环体语句;
    • c:执行控制条件语句
    • d:执行判断条件语句,看其返回值是true还是false
      • 如果是true,就继续执行
      • 如果是false,就结束循环
    • e:回到b继续。
  • C:案例演示
    • 需求:请在控制台输出数据1-10

###04.09_Java语言基础(循环结构三种循环语句的区别)

  • A:案例演示
    • 三种循环语句的区别:
    • do…while循环至少执行一次循环体。
    • 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
  • B:案例演示
    • for循环和while循环的区别:

      • A:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用谁就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
        案例:
        class Demo1_DoWhile {
        public static void main(String[] args) {
        //while 和do while的区别
        /*int i = 11;
        do {
        System.out.println("i = " + i);
        i++;
        }
        while (i <= 10);

      System.out.println("---------------------");

      int j = 11;
      while (j <= 10) {
      System.out.println("j = " + j);
      j++;
      }*/

      /for (int i = 1;i <= 10 ;i++ ) {
      System.out.println(“i = " + i);
      }

      //System.out.println(“i = " + i); for语句执行后变量会被释放,不能再使用
      System.out.println(”-------------------”);
      int i = 1;
      while (i <= 10) {
      System.out.println(“i = " + i);
      i++;
      }
      System.out.println(”-------------------");
      System.out.println("i = " + i); //while语句执行后,初始化变量还可以继续使用
      /

      //while语句的无限循环
      /while (true) {
      System.out.println(“hello world”);
      }
      /

      //System.out.println(“hello world”);
      //for语句的无限循环
      for (; ; ) {
      System.out.println(“hello world”);
      }
      }
      }

###04.10_Java语言基础(循环结构注意事项之死循环)

  • A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
  • B:两种最简单的死循环格式
    • while(true){…}
    • for(;?{…}
      此案例在上面的案例中,死循环是有用的,比如键盘录入学生的信息,但是什么时间结束呢?当用户输入的信息"886"时结束循环。

###04.11_Java语言基础(循环结构循环嵌套输出4行5列的星星)(外循环循环一次,内循环循环一圈)
循环嵌套:理解(看书:每页相当于外循环,该页中的每一句,相当于内循环)、(时钟:时针走一个格子,分针走一圈)

  • A:案例演示
    • 需求:请输出一个4行5列的星星(*)图案。
    •   如图:
        	*****
        	*****
        	*****
        	*****
        	
        注意:
        	System.out.println("*");和System.out.print("*");的区别
      
  • B:结论:
    • 外循环控制行数,内循环控制列数
      案例:
      class Demo1_ForFor {
      public static void main(String[] args) {
      /for (int i = 1;i <= 3 ;i++ ) { //外循环
      System.out.println("i = " + i);
      for (int j = 1;j <= 3 ;j++ ) { //内循环
      System.out.println("j = " + j);
      }
      }
      /

      for (int i = 1;i <= 4 ;i++ ) { //外循环决定的是行数
      for (int j = 1;j <= 5 ;j++ ) { //内循环决定的是列数
      System.out.print("*");
      }
      System.out.println();
      }
      }
      }

###04.12_Java语言基础(循环结构循环嵌套输出正三角形)

  • A:案例演示
  •   需求:请输出下列的形状
      *
      **
      ***
      ****
      *****
    

案例:
class Demo2_ForFor {
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(); //将光标换到下一行的行首
}
}
}

###04.13_Java语言基础(循环结构九九乘法表)

  • A:案例演示
    • 需求:在控制台输出九九乘法表。
  • B:代码优化
  •   注意:
      '\x' x表示任意,\是转义符号,这种做法叫转移字符。
      
      '\t'	tab键的位置
      '\r'	回车
      '\n'	换行
      '\"'
      '\''
    

实现方式一:(但是不符合要求)
class Demo_sxh {
public static void main(String[] args) {
System.out.println(“11=1");
System.out.println("1
2=2 22=4");
System.out.println("1
3=3 23=6 33=9”);
//…
}
}

思考:(可以先打一句,然后将其中的1,2,3用变量表示,然后外面再套一层变量就能实现)
//一定要有思路,任何一件事都是简单的地方开始思考的?
//以后毕业做项目时,一定要保持积极的心态,总是想着怎么解决问题,而不是去逃避!~!
class Demo_99 {
public static void main(String[] args) {
System.out.println(“13=3 23=6 3*3=9”);
}
}

class Demo_99 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+""+i+"="+ji+"\t");
}
System.out.println();
}

}

}

思考:可以先打印直角三角,然后将每个“”换成表达式即可
/

  • A:案例演示
    • 需求:在控制台输出九九乘法表。

1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9

**


/
class Demo3_For99 {
public static void main(String[] args) {
/for (int i = 1;i <= 9 ;i++ ) { //行数
for (int j = 1;j <= i ;j++ ) { //列数
System.out.print(j + "
" + i + “=” + (i * j) + “\t” );
}
System.out.println();
}
/

//System.out.println("""); 转义双引号
System.out.println(’’’); //转义单引号
}
}

###04.14_Java语言基础(控制跳转语句break语句)

  • A:break的使用场景
    • 只能在switch和循环中
      案例:
      class Demo1_Break {
      public static void main(String[] args) {
      //break;写在这报错,break只能用在循环和switch语句中
      for (int x = 1;x <= 10 ;x++ ) {
      if (x == 4) {
      break; //跳出循环
      }

      System.out.println("x = " + x);
      }
      }
      }

###04.15_Java语言基础(控制跳转语句continue语句)

  • A:continue的使用场景
    • 只能在循环中 ,提前结束本次循环(循环体中continue后面的语句将不再执行),继续进行下一次
      /*
  • A:continue的使用场景
    • 只能在循环中
      */
      案例:
      class Demo2_Continue {
      public static void main(String[] args) {
      for (int x = 1;x <= 10 ;x++ ) {
      if (x == 4) {
      continue; //终止本次循环,继续下次循环
      }

      System.out.println("x = " + x);
      }
      }
      }

###04.16_Java语言基础(控制跳转语句标号)

  • 标号:标记某个循环对其控制
  • 标号组成规则:其实就是合法的标识符
    案例:
    class Demo3_Mark { //mark 标记
    public static void main(String[] args) {
    /outer: for (int i = 1;i <= 10 ;i++ ) { //a就是标号,只要是合法的标识符即可
    System.out.println("i = " + i);
    inner: for (int j = 1;j <= 10 ;j++ ) {
    System.out.println("j = " + j);
    break outer;
    }
    }
    /

    System.out.println(“大家好”);
    http://www.heima.com //这里http:就是一个标号,而后面的//是java中的注释,所以相当于给输出语句做了一个标记,没有什么实际的意义
    System.out.println(“才是真的好”);
    }
    }

###04.17_Java语言基础(控制调整语句练习)

  • A:练习题
  •   for(int x=1; x<=10; x++) {
      	if(x%3==0) {
      		//在此处填写代码
      	}
      	System.out.println(“Java基础班”);
      }
      
      我想在控制台输出2次:“Java基础班“
      我想在控制台输出7次:“Java基础班“
      我想在控制台输出13次:“Java基础班“
    

案例:
class Test1 {
public static void main(String[] args) {
for(int x=1; x<=10; x++) {
if(x%3==0) {
//break; //我想在控制台输出2次:“Java基础班“
//continue; //我想在控制台输出7次:“Java基础班“
System.out.println(“Java基础班”);//我想在控制台输出13次:“Java基础班“
}
System.out.println(“Java基础班”);
}
}
}

###04.18_Java语言基础(控制跳转语句return语句)

  • A:return的作用
    • 返回
    • 其实它的作用不是结束循环的,而是结束方法的。
  • B:案例演示
    • return和break以及continue的区别?
    • return是结束方法
    • break是跳出循环
    • continue是终止本次循环继续下次循环
      案例:
      class Demo4_Return {
      public static void main(String[] args) {
      for (int i = 1;i <= 10 ;i++ ) {
      if (i == 4) {
      //break; //停止循环
      return; //返回的意思,用来返回方法
      }
      }

      System.out.println(“循环结束了”);
      }
      }

###04.19_Java语言基础(方法概述和格式说明)

  • A:为什么要有方法
    • 提高代码的复用性 //如果不 复用,就会出现很多重复性的代码
  • B:什么是方法
    • 完成特定功能的代码块。
  • C:方法的格式
  •   修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
      	方法体语句;
      	return 返回值; 
      } 
    
  • D:方法的格式说明
    • 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
    • 返回值类型:就是功能结果的数据类型。
    • 方法名:符合命名规则即可。方便我们的调用。
    • 参数:
      • 实际参数:就是实际参与运算的。
      • 形式参数;就是方法定义上的,用于接收实际参数的。
    • 参数类型:就是参数的数据类型
    • 参数名:就是变量名
    • 方法体语句:就是完成功能的代码。
    • return:结束方法的。
    • 返回值:就是功能的结果,由return带给调用者。

###04.20_Java语言基础(方法之求和案例及其调用)

  • A:如何写一个方法
    • 1,明确返回值类型
    • 2,明确参数列表
  • B:案例演示
    • 需求:求两个数据之和的案例
  • C:方法调用图解

案例:
class Demo2_Sum {
public static void main(String[] args) {
/int a = 10;
int b = 20;
int sum = a + b;
System.out.println(sum);

int c = 30;
int d = 40;
int sum2 = c + d;
System.out.println(sum2);
/

int sum = add(10,20);
System.out.println(sum);

//add(30,40); //有返回值方法的单独调用,没有意义
System.out.println(add(30,40)); //这样调用是可以,but如果需要用这个结果不推荐这样调用

//盘子 = 炒菜(地沟油,苏丹红,镉大米,烂白菜);
}
public static int add(int a,int b) { //int a = 10,int b = 20
int sum = a + b;
return sum; //如果有返回值必须用return语句带回
}

/*
盘子 炒菜(油,调料,米,菜) {
炒菜的动作
return 一盘菜;
}
*/

}

###04.21_Java语言基础(方法的注意事项)

  • A:方法调用(有具体返回值)
    • a:单独调用,一般来说没有意义,所以不推荐。
    • b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
    • c:赋值调用,推荐方案。
  • B:案例演示
    • a:方法不调用不执行
    • b:方法与方法是平级关系,不能嵌套定义
    • c:方法定义的时候参数之间用逗号隔开
    • d:方法调用的时候不用在传递数据类型
    • e:如果方法有明确的返回值,一定要有return带回一个值

###04.22_Java语言基础(方法的练习)

  • A:案例演示
    • 需求:键盘录入两个数据,返回两个数中的较大值
  • B:案例演示
    • 需求:键盘录入两个数据,比较两个数是否相等
      案例:
      import java.util.Scanner;
      class Test1_Method {
      public static void main(String[] args) {
      Scanner sc = new Scanner(System.in); //创建键盘录入对象
      System.out.println(“请输入第一个整数:”);
      int x = sc.nextInt(); //将键盘录入的整数存储在x中
      System.out.println(“请输入第二个整数:”);
      int y = sc.nextInt(); //将键盘录入的整数存储在y中

      //int max = getMax(x,y);
      //System.out.println(max);

      boolean b = isEquals(x,y);
      System.out.println(b);
      }

      /*
      返回连个整数的较大值
      1,明确返回值类型 int
      2,明确参数列表 int a,int b
      /
      public static int getMax(int a,int b) {
      return a > b ? a : b;
      }

      /

      判断两个整数是否相等
      1,明确返回值类型 boolean
      2,明确参数列表 int a,int b
      */
      public static boolean isEquals(int a,int b) { //isEquals 是否相等
      return a == b;
      }
      }

###04.23_Java语言基础(方法之输出星形及其调用)

  • A:案例演示
    • 需求:根据键盘录入的行数和列数,在控制台输出星形
  • B:方法调用:(无返回值,void)
    • 单独调用

    • 输出调用(错误)

    • 赋值调用(错误)
      案例:
      import java.util.Scanner;
      class Demo3_Method {
      public static void main(String[] args) {
      Scanner sc = new Scanner(System.in); //创建键盘录入对象
      System.out.println(“请输入行数:”);
      int row = sc.nextInt(); //将键盘录入的行数存储在row中
      System.out.println(“请输入列数:”);
      int column = sc.nextInt(); //将键盘录入的列数存储在column中

      //System.out.println(print(row,column)); //错误: 此处不允许使用 ‘空’ 类型,返回值是void的方法不能输出调用
      //返回值是void的方法只能单独调用
      print(row,column);
      }

      /*
      在控制台输出矩形星形
      1,明确返回值类型,经分析没有具体的返回值类型,void
      2,明确参数列表int a,int b
      /

      public static void print(int a,int b) {
      for (int i = 1;i <= a ;i++ ) { //行数
      for (int j = 1;j <= b ;j++ ) { //列数
      System.out.print("
      ");
      }
      System.out.println();
      }

      //return ; //如果返回值类型是void,return可以省略,即使省略系统也会默认给加上,形式是return;
      }
      }

###04.24_Java语言基础(方法的练习)

  • A:案例演示
    • 需求:根据键盘录入的数据输出对应的乘法表
      案例:
      import java.util.Scanner;
      class Test2_Method {
      public static void main(String[] args) {
      Scanner sc = new Scanner(System.in); //创建键盘录入对象
      System.out.println(“请录入一个整数,范围在1-9之间”);
      int num = sc.nextInt(); //将键盘录入的整数存储在num中
      print99(num);
      }

      /*
      打印99乘法表
      1,返回值类型void
      2,参数列表,int a
      /

      public static void print99(int a) {
      for (int i = 1;i <= a ;i++ ) { //行数
      for (int j = 1;j <= i ;j++ ) { //列数
      System.out.print(j + "
      " + i + “=” + (i * j) + “\t” );
      }
      System.out.println();
      }
      }
      }

###04.25_Java语言基础(方法重载概述和基本使用)

  • A:方法重载概述
    • 求和案例
      • 2个整数
      • 3个整数
      • 4个整数
  • B:方法重载:
    • 在同一个类中,方法名相同,参数列表不同。与返回值类型无关。

    • 参数列表不同:

      • A:参数个数不同
      • B:参数类型不同
      • C:参数的顺序不同(算重载,但是在开发中不用)
        案例:
        class Demo4_Overload { //overload重载
        public static void main(String[] args) {
        double sum1 = add(10,20.1);
        System.out.println(sum1);

        int sum2 = add(10,20,30);
        System.out.println(sum2);

        double sum3 = add(12.3,13);
        System.out.println(sum3);
        }

        /*
        求两个整数的和
        1,返回值类型int
        2,参数列表 int a,int b
        /

        public static double add(int a,double b) {
        return a + b;
        }

        /

        求三个整数的和
        1,返回值类型int
        2,参数列表 int a,int b,int c
        /

        public static int add(int a,int b,int c) {
        return a + b + c;
        }

        /

        求两个小数的和
        1,返回值类型double
        2,参数列表 double a,double b
        */

        public static double add(double a,int b) {
        return a + b;
        }
        }

###04.26_Java语言基础(方法重载练习比较数据是否相等)

  • A:案例演示
    • 需求:比较两个数据是否相等。
    • 参数类型分别为两个int类型,两个double类型,并在main方法中进行测试
      案例:
      class Test3_Overload {
      public static void main(String[] args) {
      boolean b1 = isEquals(10,10);
      System.out.println(b1);

      boolean b2 = isEquals(10.5,10.5);
      System.out.println(b2);
      }

      /*
      比较两个数据是否相等
      1,返回值类型boolean
      2,参数列表int a,int b
      /

      public static boolean isEquals(int a,int b) {
      return a == b;
      }

      /

      比较两个数据是否相等
      1,返回值类型boolean
      2,参数列表double a,double b
      */

      public static boolean isEquals(double a,double b) {
      return a == b;
      }
      }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值