编程练习
编程练习:实现输出学生年龄的最大值。
要求:
1、 要求通过定义无参带返回值的方法来实现,返回值为最大年龄
2、 方法中将学生年龄保存在数组 ages 中,数组元素依次为 18 ,23 ,21 ,19 ,25 ,29 ,17
运行效果为: 最大年龄为:29
public class Text01 {
//完成 main 方法
public static void main(String[] args) {
// 创建对象,对象名为hello
Demo0205 hello = new Demo0205();
// 调用方法并将返回值保存在变量中
int maxScore=hello.getMaxAge();
// 输出最大年龄
System.out.println("最大年龄为:" + maxScore);
}
/*
* 功能:输出学生年龄的最大值
* 定义一个无参的方法,返回值为年龄的最大值
* 参考步骤:
* 1、定义一个整形数组 ages ,保存学生年龄,数组元素依次为 18 ,23 ,21 ,19 ,25 ,29 ,17
* 2、定义一个整形变量 max ,保存学生最大年龄,初始时假定数组中的第一个元素为最大值
* 3、使用 for 循环遍历数组中的元素,并与假定的最大值比较,如果比假定的最大值要大,则替换当前的最大值
* 4、使用 return 返回最大值
*/
//方法一:
public int getMaxAge() {
int[] ages={18,23,21,19,25,20,29,17};
int max=0;
for(int i:ages)
{ max=max>=i?max:i; }
return max;
}
//方法二:
/* public int getMaxAge() {
int[] ages = {18,23,21,19,25,29,17};
Arrays.sort(ages);
int max = ages[ages.length-1];
return max;
}
*/
//方法三:
/* public int getMaxAge() {
int ages[]={18 ,23 ,21 ,19 ,25 ,29 ,17};
int max=ages[0];
for(int i=0;i<ages.length;i++)
if(max<ages[i])max=ages[i];
return max;
}
*/
}
其中,方法一使用foreach遍历数组中的元素,foreach是for语句的特殊简化版本,在遍历数组、集合时, foreach更简单便捷。
foreach语法:
for(元素类型 元素变量:遍历对象){
执行的代码
}
方法二中为排序:Array.sort(ages);
Eclipse内容提示快捷键:syso+alt+/
程序优化:
整个练习中,学生年龄信息的值是固定的,用户自己不能输入值,如何让用户自己输入学生年龄的这些值呢?Java中提供了scanner工具类来获取用户输入的值。scanner类位于java.util包中,使用时需要导入这个包,步骤:
- 导入java.util.Scanner这个工具类
在包声明(如:package com.dawn;)的下面通过import实现:
import java.util.Scanner;
- 创建Scanner对象
可以通过Scanner方法获取用户输入的值。
我们在main方法中指定对象的名称,对象的名称可以随便定义,我们常用input:
Scanner input=new Scanner(System.in);
- 接受并保存用户输入的值
首先,我们要提示用户输入信息,System.out.println(“请输入年龄信息:”);
接受用户信息:
int ages=input.nextInt();
如果获取的信息是浮点数则为nextDouble()实现。
程序调试
利用IDE工具提供的断点调试的功能
我们假设循环出现问题,那么在for这条代码前双击可以看到实心圆,即断点。
程序运行到这个位置会自动停止,这样我们就可以进行一步一步的调试。
如何进行调试呢?
点击工具栏上Debug按钮,出现调试试图,执行到我们设置的断点的位置,程序并没有往下执行即执行到for前面
我们通过点击工具栏上面的Step Over(或者F6)使代码一条一条的执行,我们可以在程序调试窗口中看变量值的变化,从而判断程序问题的所在。