这次我们练练有关自定义函数的编程题,下面用具体的例子讨论:
首先我们做一个简单的——反向显示一个数。
import java.util.*;
class Home24{
/**
问题:反向显示一个数
*/
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个整数:");
int num=scanner.nextInt();
int revnum=reverse(num);
System.out.print("反转后的数字为:"+revnum);
}
public static int reverse(int num){
int revnum=0;
while(true){
if(num!=0){
num%=10;
revnum=revnum*10+num;
num/=10;
}else{
break;
}
}
return revnum;
}
}
该问题中,我们主要练习使用自定义函数来实现,其中,用到的主要思想是revnum=revnum*10+num;其他都容易想到。
下面写一个统计字符串中某个字符的出现次数的代码。
import java.util.*;
class Home25{
/**
问题:统计并输出用户设定的字符在输入的字符串中出现的次数
*/
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请分别输入你的字符串和设定需要寻找的字符:");
String str=scanner.nextLine();
String ch=scanner.next();
int count=count(str,ch);
System.out.print("在字符串"+str+"中,字符"+ch+"出现了"+count+"次");
}
public static int count(String str,String ch){
int sum=0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)==ch.charAt(0)){
sum++;
}
}
return sum;
}
}
上述程序中,有一点需要注意:因为字符不可以直接输入电脑,用某个变量来接收此字符,所以这里使用字符串定义,当我们在输入字符串中遍历此字符时,使用if(str.charAt(i)==ch.charAt(0))这条语句即可解决此问题。
再做一个简单的使用函数判断输入的数字是否为回文数字
import java.util.*;
class Class26{
/**
问题:使用函数判断输入的数字是否为回文数字
*/
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
int num=scanner.nextInt();
if(isPalindrome(num)){
System.out.print("回文");
}else{
System.out.print("不是回文");
}
}
public static boolean isPalindrome(int number){
return reverse(number)==number;
}
public static int reverse(int n){
int re=0;
while(true){
re=re*10+n%10;
n/=10;
if(n==0){
break;
}
}
return re;
}
}
注意:在使用自定义函数编写程序中,先书写框架,比如在主函数把整个思路写清楚,然后到了哪一个方法(自定义函数)再去构写。如此一来,会使程序简明,尤其是当读者查看时,主函数一目了然,部分功能用到时,转过去再浏览。
自定函数也解决了代码的冗余(一个自定义函数的多次调用)。自定义函数的位置对结果无影响。