数组的使用、eclipse调试程序、练习小demo以及方法的定义和重载

编程练习优化

package com.imooc;
import java.util.Scanner;
/*
 * 功能:为指定的成绩加分,直至分数大于等于60分为止
 *          输出加分前后的成绩,并且统计加分次数
 * 步骤:
 * 1、定义一个变量,用来保存加分的次数
 * 2、使用循环为成绩加分
 * 3、每次执行循环加分操作,加1分,并且统计加分的次数
 * 使用Scanner工具类来获取用户输入的成绩信息
 * Scanner类位于java.util包中,使用时需要导入此包
 * 步骤:
 * 1、导入java.util.Scanner
 * 2、创建Scanner对象
 * 3、接收并保存用户输入的值
 */
public class HelloWorld{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);//创建Scanner对象
        System.out.println("请输入考试成绩信息:");
        int score=input.nextInt();//获取用户输入的成绩并保存在变量score中
        int count=0;
        System.out.println("加分前的成绩:"+score);
        while(score<60){//只要成绩小于60分,就循环进行加分操作
            score++;
            count++;
        }
        System.out.println("加分后的成绩:"+score);
        System.out.println("共加了"+count+"次");
    }
}

使用eclipse调试程序

在需要开始调试的代码行前双击,

添加断点(双击后会出现一个实心圆点)

点击eclipse工具栏“甲壳虫”图形(debug)开始执行调试程序

执行到断点时,按F6从断点处一行一行的执行代码,并从中找出程序中的错误

编程练习进阶

package com.imooc;
import java.util.Scanner;
/*
 * 功能:实现接收3个班级的各4名学员的成绩信息,然后计算每个班级学员的平均分
 * 知识点:二重循环、外层循环控制班级的数量,内层循环控制每个班级学员的数量
 */
public class HelloWorld{
    public static void main(String[] args){
        int classNum=3;//班级数量
        int stuNum=4;//学生数量
        double sum=0;//成绩总和
        double avg=0;//成绩平均分
        Scanner input=new Scanner(System.in);//创建Scanner对象
        for(int i=1;i<=classNum;i++){
            sum=0;//计算前成绩总和归0
            System.out.println("***请输入第"+i+"个班级的成绩***");
            for(int j=1;j<=stuNum;j++){
                System.out.println("请输入第"+j+"个学员的成绩:");
                int score=input.nextInt();
                sum+=score;
            }
            avg=sum/stuNum;//计算平均分
            System.out.println("第"+ i +"个班级学生第平均分为:"+avg);
        }
    }
}

What is 数组 ?

1、声明数组

语法:数据类型[] 数组名;  or  数据类型 数组名[];

2、分配空间——就是指定数组中可以存储多少个元素

int[] scores=new int[5]   为数组分配空间,长度为5 //必须指定长度

3、赋值 scores[0]=89;

在java中还提供了另外一种直接创建数组的方式,它将声明、分配空间、赋值合并完成

int[] scores={89,42,53,39} 创建一个长度为4的数组

它等价于:

int[] scores=new int[]{89,42,53} 第2个int[]里必须为空,不能指定长度

数组名.length 用于获取数组的长度

public static void main(String[] args){
        int nums[]=new int[]{61,23,4,74,13,148,20};
        int max=nums[0];
        int min=nums[0];
        int sum=0;
        double avg;
        for(int i=0;i<nums.length;i++){
            if(nums[i]>max){
                max=nums[i];
            }
            if(nums[i]<min){
                min=nums[i];
            }
            sum+=nums[i];
        }
        avg=sum/nums.length;
        System.out.println(max);
        System.out.println(min);
        System.out.println(sum);
        System.out.println(avg);
    }

使用Arrays类操作java中的数组&foreach

Arrays.sort(数组名) 对数组进行排序(按升序排列)

Arrays.toString(数组名) 将数组转化成字符串

import java.util.Arrays;

String[] hobbies={"sports","game","mobie"};

Arrays.sort(hobbies);

System.out.println(Arrays.toString(hobbies));

结果:[game, mobie, sports]

使用foreach操作数组

语法:for(元素类型 变量名 遍历对象) {

执行的代码}

foreach是for语句的特殊简化版本,在遍历数组、集合时,foreach更简单便捷!

int[] scores={89,72,64,58,93};

Arrays.sort(scores);

for(int score:scores){

System.out.println(score); }

java中的二维数组

1、声明数组并分配空间

数据类型[][] 数组名=new 数据类型[行的个数][列的个数]

又或者简单点:

//定义一个2行3列的二维数组

int[][] num=new int[2][3]

2、赋值:

a、数组名[行的索引][列的索引]=值

也可以在声明数组的同时为其赋值

b、数据类型[][] 数组名={{value1,value2,...},{value1,value2,...},{value1,value2,...}}

在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组,例如:

int[][] num=new int[3][];定义一个3行的二维数组

num[0]=new int[2]; 为第1行分配2列

num[1]=new int[3]; 为第2行分配3列

num[2]=new int[4]; 为第3行分配4列

public static void main(String[] args){
    String names[][]={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
        for(int i=0;i<names.length;i++){
            for(int j=0;j<names[i].length;j++){
                System.out.println(names[i][j]);
            }
        System.out.println();
        }
    }

如何定义java中的方法

所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。

定义一个方法的语法是:

访问修饰符 返回值类型 方法名(参数列表){

方法体

}

访问修饰符:方法允许被访问的权限范围,public  protected  private  也可省略访问修饰符,其中 public 表示该方法可以被其他任何代码调用

返回值类型:如果方法不返回任何值就用void

1、如果方法的返回类型为 void ,则方法中不能使用 return 返回值!

2、方法的返回值最多只能有一个,不能返回多个值

3、方法返回值的类型必须兼容,例如,如果返回值类型为 int ,则不能返回 String 型值

public int maxAge(){
        int[] ages={18,23,21,19,25,29,17};
        int max=ages[0];
        for(int i=0;i<ages.length;i++){
            if(ages[i]>max){
                max=ages[i];
            }
        }
        return max;
    }
    public static void main(String[] args){
        HelloWorld test=new HelloWorld();
        System.out.println("最大年龄为:"+test.maxAge());
    }

 

Java中带参的方法

很多时候,我们把定义方法时的参数称为形参,目的是用来定义方法需要传入的参数的个数和类型;把调用方法时的参数称为实参,是传递给方法真正被处理的值。

一定不可忽视的问题:

调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应

public void calcAvg(double score1,double score2){
        System.out.println((score1+score2)/2);
    }

    public int sort(int[] scores){
        Arrays.sort(scores);
        System.out.println(Arrays.toString(scores));
        int count=scores.length;
        return count;
    }

    public static void main(String[] args){
        HelloWorld hello=new HelloWorld();
        hello.calcAvg(94, 81);
        int[] scores={79,52,98,81};
        int count=hello.sort(scores);
        System.out.println(count);
    }

什么是方法的重载呢?

如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。

如何区分调用的是哪个重载方法呢?

当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。

判断方法重载的依据:

1、 必须是在同一个类中

2、 方法名相同

3、 方法参数的个数、顺序或类型不同

4、 与方法的修饰符或返回值没有关系

通过 (int)(Math.random() * 100) 生成 100 以内的随机数

注:Math 类是用于进行算术操作的类,Math.random() 生成 0--1 的浮点数。 关于该类的其他应用在后面章节会有详细介绍,先熟悉随机数方法的使用~~

public static void main(String[] args){
        HelloWorld hello=new HelloWorld();
        int nums[]=hello.getArray(3);
        System.out.println(Arrays.toString(nums));
    }
    public int[] getArray(int length){
        int[] nums=new int[length];
        for(int i=0;i<length;i++){
            nums[i]=(int)(Math.random()*100);
        }
        return nums;
    }

实现输出考试成绩的前3名

public static void main(String[] args){
        HelloWorld hello=new HelloWorld();
        int[] scores={89,-23,64,91,119,52,73};
        hello.printNO3(scores);
    }
    public void printNO3(int[] scores){
        Arrays.sort(scores);
        int count=0;
        System.out.println("考试成绩的前3名为:");
        for(int i=scores.length-1;i>=0;i--){
            if(scores[i]<0||scores[i]>100){
                continue;
            }
            if(count>=3){
                break;
            }
            System.out.println(scores[i]);
            count++;
        }
    }

*** END

 

原文地址:https://www.cnblogs.com/liuyun66535309/p/8878631.html

时间: 2024-08-29 15:55:57

数组的使用、eclipse调试程序、练习小demo以及方法的定义和重载的相关文章

字典、数组、JSON之间的转化小demo

/** * 数组转JSON. */ - (void)testJsonAndArray { NSArray *arr = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",@"f", nil]; NSLog(@"arrar = %@",arr); NSError *error = nil; NSData *jsonDa

phonegap3.5插件开发小demo

由于phonegap升级较快,在3.X之后改变了它的插件机制,所有调用手机原生的功能全部以外部插件的形式提供,创建phonegap项目之后不再能够直接调用系统功能API如camera,device等,所以必须以插件的形式引入到项目中来,才能够使用. 这里主要讲的是自定义插件的开发及在项目中调用,关于怎么使用别人已经写好的插件请参考官网http://docs.phonegap.com/en/3.3.0/guide_hybrid_plugins_index.md.html#Plugin%20Deve

React问答小demo

在学习react初期,看了一些视频和资料,react基础知识差不多学完,跟着网上的一个教程,做了一个小型的问答demo. 需求看图说: 1.点击"添加"按钮,显示问题输入表单,再次点击,隐藏表单.同时,点击"取消"按钮,隐藏表单. 2.输入问题标题和内容后,点击"确认"按钮,将问题显示在下方(按照投票数从高到低). 3.每个问题有加票和减票功能,在点击的同时,将问题按照投票数从高到低排序. 实现过程: 一.开发环境和工具 1.npm init (

iOS启动时如何添加引导页面 小demo

相信大家都看到过手机应用在启动的时候,都会有一个很漂亮的页面,在这个页面显示之后,如果你是第一次打开该应用还会有提示图片(如程序怎么使用等等),今天自己写了一个小demo 在此分享一下,可以给新学者一个参考             以上就是在Xcode中如何找到设置引导页面的位置 对于图片的设置大家可以看到图中有2x  和R4 两种,对于这两种类型的区别如下 R4 代表的是Retina屏幕也就是高清屏,那么这里我们选择的引导图片,一般情况下,在工程中如果有[email protected] 或者

高仿新浪微博,写了个小demo

运用新浪开发的微博数据接口,花了两天时间高仿新浪iphone手机客户端的写了新特性和首页,感觉运用到的知识点还是挺多的,尤其实在框架的搭建和代码的封装上,直接决定了系统的重用性和扩展性,案例视图:                            共享几个案例中用到的小技巧: (1) 重写按钮的样式    一般按钮中的文字和图片都是左右排, 那么如何按照自己的想法,任意的控制按钮中元素的排列呢? 1 #import "XHcenterBtn.h" 2 #import "U

Bmob 开发Android程序快速入门--小demo

注册Bmob帐号 在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名.邮箱.设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了. 网站后台创建应用 登录账号进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用. 获取应用密钥和下载SDK 选择你要开发的应用,点击该应用下方对应的“应用密钥” 在跳转页面,获取Application

spring AOP 环绕增强小Demo

前面写了一个前置增强,后置增强的小demo,前置增强即在方法调用前对方法增强:后置增强即在方法调用后对方法增强.环绕增强允许在目标类方法调用前后织入横切逻辑,它综合了前置.后置增强两者的功能. 还继续沿用之前的代码,这里介绍环绕增强的实现类和测试类. 环绕增强类 GreetingAroundAdvice.java package com.paic.zhangqi.spring.aop; import org.aopalliance.intercept.MethodInterceptor; imp

一周一个小demo — 前端后台的交互实例

这一周呢,本K在大神的指导下,完成了一个利用ajax与php文件上传处理相结合的一个留言板功能的小实例,下面就让本K来带大家瞅瞅如何实现这一种功能. 一.界面概览 首先我们来看一下这个小demo的具体效果. 这个demo中,主要包括了三个步骤,也分别对应了三个功能,分别是注册,登录与留言板功能.而这三个功能基本都借助了前后台交互的几种技术,下面,本K就给大家分别展示一下这三个功能实现的代码. 二.功能实现 1.注册功能与登录功能 1.1 代码展示 1.1.1 注册功能 (1)前段部分 <!DOC

Eclipse调试程序及项目的导入导出

Eclipse调试程序 调试概述: ①   调试就是测试程序的方法,主要的目的就是解决程序的逻辑问题,流程是:发现问题.修改问题.正确执行; ②   以前我们可以使用System.out.println()方法来查看我们程序中的问题; ③   现在我们可以使用Eclipse开发工具帮我们进行调试: Eclipse为程序员提供了设置断点的功能来达到单步调试程序的能力; 调试步骤: ①   初步判断程序出错的位置; ②   给指定的程序设置断点(可以设置多个); ③   进入调试视图让程序在断点位置