Java开发编程基础-3


Java开发编程基础-3

1.循环结构概述和for语句的格式及其使用

* A:循环结构的分类

         *for,while,do...while

* B:循环结构for语句的格式:

                   for(初始化表达式;条件表达式;循环后的操作表达式) {

                            循环体;

                   }

* C执行流程:

         *a:执行初始化语句

         *b:执行判断条件语句,看其返回值是true还是false

                   *如果是true,就继续执行

                   *如果是false,就结束循环

         *c:执行循环体语句;

         *d:执行循环后的操作表达式

         *e:回到B继续。

* 在控制台输出10次"helloworld"

                   for(int i = 1;i <= 10 ;i++ ) {

                            System.out.println("helloworld");

                   }       

2.循环结构for语句的练习之求和思想

* B:学生练习

         *需求:求出1-100之间偶数和   //if(i%2=0)  或 for (int i = 0;i<= 100 ;i+=2 )

         *需求:求出1-100之间奇数和   //if(i%2 !=0)  或 for (int i = 1;i<= 100 ;i+=2 )

 

3.循环结构for语句的练习之水仙花

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

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

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

         *153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153

       分析:

         1,100- 999

         2,获取每一个位数的值,百位,十位,个位

         3,判断各个位上的立方和是否等于这个数,如果等于打印

class Test3_Flower {

         publicstatic void main(String[] args) {

                   for(int i = 100;i <= 999 ;i++ ) {           //获取100到999之间的数

                            intge = i % 10;                   //123 % 10

                            intshi = i / 10 % 10;                    //12% 10;

                            intbai = i / 10 / 10 % 10;           //1 % 10

 

                            if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {

                                     System.out.println(i);

                            }

                   }

         }  }

 

4循环结构for语句的练习之统计思想

* 需求:统计”水仙花数”共有多少个

           if语句中加入count++;

 

5.循环结构while语句的格式和基本使用

* while循环的基本格式:

                   while(判断条件语句) {

                            循环体语句;

                   }

                  

                   完整格式:

                   初始化语句;

             while(判断条件语句) {

                             循环体语句;

                             控制条件语句;

                   }

* B:执行流程:

         *a:执行初始化语句

         *b:执行判断条件语句,看其返回值是true还是false

                   *如果是true,就继续执行

                   *如果是false,就结束循环

         *c:执行循环体语句;

         *d:执行控制条件语句

         *e:回到B继续。

 

6.循环结构while语句的练习

* 统计”水仙花数”共有多少个

                   intcount = 0;             //计数器

                   inti = 100;

                   while(i <= 999) {

                            intge = i % 10;

                            intshi = i / 10 % 10;

                            intbai = i / 100;

 

                            if(i == ge * ge * ge + shi * shi * shi + bai * bai * bai) {

                                     count++;

                            }

                            i++;

                   }

                   System.out.println("count=" + count);

7.循环结构do...while语句的格式和基本使用

* A:循环结构do...while语句的格式:

 

                   初始化语句;

                   do{

                            循环体语句;

                            控制条件语句;

                   }while(判断条件语句);

* B:执行流程:

         *a:执行初始化语句

         *b:执行循环体语句;

         *c:执行控制条件语句

         *d:执行判断条件语句,看其返回值是true还是false

                   *如果是true,就继续执行

                   *如果是false,就结束循环

         *e:回到b继续。

* C:案例演示

         *需求:请在控制台输出数据1-10

 

8.循环结构三种循环语句的区别

* 三种循环语句的区别:

         *do...while循环至少执行一次循环体。

         *而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。

* for循环和while循环的区别:

          * for语句执行完后,变量就会被释放,不能在使用;while语句执行完后,初始化变量还可以继续使用

            * A:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用谁就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。

                                    

9.循环结构注意事项之死循环

* A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。

* B:两种最简单的死循环格式

         *while(true){...}

         *for(;;){...}

 

10.循环结构循环嵌套输出4行5列的星星

* 需求:请输出一个4行5列的星星(*)图案。

                            如图:  *****

                                    *****

                                     *****

                                     *****                                  

                            注意:

                                     System.out.println("*");和System.out.print("*");的区别

                                     println 输入后直接换行,因为ln为换行

                                     print输入后不会换行

* B:结论:

         *外循环控制行数,内循环控制列数

                    for (int i = 1;i <= 4;i++ ) {           //外循环决定的是行数

                            for(int j = 1;j <= 5 ;j++ ) { //内循环决定的是列数

                                     System.out.print("*");

                            }

                            System.out.println()

 

11.循环结构循环嵌套输出正三角形

* 需求:请输出下列的形状

                   *

                   **

                   ***

                   ****

                   *****  

     上面内循环中改为j<=i;就可以了

 

12.循环结构九九乘法表   

* 需求:在控制台输出九九乘法表。

         *将上面对应的语句改为System.out.print(j+ "*" + i + "=" + (i * j) + "\t" );就可以了

* B:代码优化

注意:

                   '\x'x表示任意,\是转义符号,这种做法叫转移字符。              

                   '\t'    tab键的位置

                   '\r'    回车

                   '\n'   换行

                   '\"'    在输出语句中打印双引号

                   '\''

        

13.控制跳转语句break语句   loop的意思是循环

* A:break的使用场景

         *只能在switch和循环中   作用是: 跳出整个循环

 

14.控制跳转语句continue语句

* A:continue的使用场景 

    *只能在循环中   作用是:终止本次循环,结束整个循环体,之后执行循环后的操作表达式(继续下次循环)

 

15.控制跳转语句标号

* 标号:标记某个循环对其控制

* 标号组成规则:其实就是合法的标识符

    outer: for (int i = 1;i <= 10 ;i++ ) { //a(outer)就是标号,只要是合法的标识符即可

         System.out.println("i= " + i);

         inner:for (int j = 1;j <= 10 ;j++ ) {

         System.out.println("j= " + j);

         breakouter;   //终止外层循环   输出 i=1  j=1

                         去掉outer,只是终止内层循环  输出 i=1 j=1 i=2 j=2i=3 j=3 ....

         }

    }

               System.out.println("大家好");

                http://www.heima.com

                System.out.println("才是真的好");

               程序中写上这三行不会报错,因为http:相当于标号,//是注释,后面的不会执行

16.控制调整语句练习

* A:练习题

*

                   for(intx=1; x<=10; x++) {

                            if(x%3==0){

                                     //在此处填写代码

                            }

                            System.out.println(“Java基础班”);

                   }                

                   我想在控制台输出2次:“Java基础班“  //填break;

                   我想在控制台输出7次:“Java基础班“  //填continue;

                   我想在控制台输出13次:“Java基础班“ //填System.out.println(“Java基础班”); 

17.控制跳转语句return语句

* A:return的作用

         *返回

         *其实它的作用不是结束循环的,而是结束整个方法的。

* return和break以及continue的区别?

         *return是结束方法

         *break是跳出循环

         *continue是终止本次循环继续下次循环

18.方法概述和格式说明

* A:为什么要有方法

         *提高代码的复用性

* B:什么是方法

         *完成特定功能的代码块。

* C:方法的格式

*

                   修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {

                            方法体语句;

                            return返回值;

                   }

* D:方法的格式说明

         *修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。

         *返回值类型:就是功能结果的数据类型。void ,int....  (void 没有返回值)

         返回值完全取决于返回值类型!

         *方法名:符合命名规则即可。方便我们的调用。

         *参数:

                   *实际参数:就是实际参与运算的。

                   *形式参数;就是方法定义上的,用于接收实际参数的。

         *参数类型:就是参数的数据类型

         *参数名:就是变量名

         *方法体语句:就是完成功能的代码。

         *return:结束方法的。

         *返回值:就是功能的结果,由return带给调用者。

 

19.方法之求和案例及其调用

* A:如何写一个方法

         *1,明确返回值类型

         *2,明确参数列表

20.方法的注意事项

* A:方法调用(有具体返回值)

         *a:单独调用,一般来说没有意义,所以不推荐。//也就是说没有定义变量去接收返回值

         *b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作.//相当于直接在输出语句中调用

         *c:赋值调用,推荐方案。

* B:案例演示

         *a:方法不调用不执行

         *b:方法与方法是平级关系,不能嵌套定义

         *c:方法定义的时候参数之间用逗号隔开

         *d:方法调用的时候不用在传递数据类型,直接给值就可以

         *e:如果方法有明确的返回值,一定要有return带回一个值

 

21.方法的练习

* 需求:键盘录入两个数据,返回两个数中的较大值   return a > b ? a : b;

* 需求:键盘录入两个数据,比较两个数是否相等     return a==b; (布尔类型)

22.方法之输出星形及其调用

* B:方法调用:(无返回值,void)

         *单独调用

         *输出调用(错误)

         *赋值调用(错误)

       *代码见 Demo3_Method.java 文件

* 需求:根据键盘录入的行数和列数,在控制台输出星形

class Demo3_Method {

         publicstatic void main(String[] args) {

                   Scannersc = new Scanner(System.in);    //创建键盘录入对象

                   System.out.println("请输入行数:");

                  int row = sc.nextInt();                         //将键盘录入的行数存储在row中

                   System.out.println("请输入列数:");

                   intcolumn = sc.nextInt();                  //将键盘录入的列数存储在column中                 

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

                   //返回值是void的方法只能单独调用!!!!!!!!!

                   print(row,column);

         }

 

         publicstatic 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;!!!!!

         }

}

23.方法的练习

* 需求:根据键盘录入的数据输出对应的乘法表  //Test2_Method.java 文件

class Test2_Method {

         publicstatic void main(String[] args) {

                   Scannersc = new Scanner(System.in);    //创建键盘录入对象

                   System.out.println("请录入一个整数,范围在1-9之间");

                   intnum = sc.nextInt();              //将键盘录入的整数存储在num中

                   print99(num);

         }

 

         publicstatic 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();

                   }

         }

}

24.方法重载概述和基本使用

* 方法重载(overload):

         *在同一个类中,方法名相同,参数列表不同。与返回值类型无关。

        

         *参数列表不同:(重载的分类)    //二进制不能完全表示小数,只能无限接近

                   *A:参数个数不同

                   *B:参数类型不同

                   *C:参数的顺序不同(算重载,但是在开发中不用)

* 方法重载的求和案例

                   *2个整数

                   *3个整数

                   *4个整数  //求和时你需要记住每个方法的不同名字去调用,麻烦,所以三个方法名统一都定为add(),根据括号里的参数个数来区分不同的方法.

class Demo4_Overload {                             //overload重载

         publicstatic void main(String[] args) {

                   doublesum1 = add(10,20.1);

                   System.out.println(sum1);

 

                   intsum2 = add(10,20,30);

                   System.out.println(sum2);

 

                   doublesum3 = add(12.3,13);

                   System.out.println(sum3);

         }

 

         publicstatic double add(int a,double b) {

                   returna + b;

         }

 

         publicstatic int add(int a,int b,int c) {

                   returna + b + c;

         }

 

         publicstatic double add(double a,int b) {

                   returna + b;

         }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值