对于刚刚接触java语言的初学者而言,除了“hello world”,比较常见的就是水仙花数、最大公约数、最小公倍数、完数、素数(质数)、一定范围内的奇数和、一定范围内的偶数和等等等等练习,此类练习基本都是针对“for(变量的初始;条件的判断;条件的改变){循环体}”,以及for语句中嵌套“if(条件判断){循环体}”的知识点进行操作的,当然,有些题目的知识点可以拓展到数组、函数等,但是对于刚刚接触Java语言,刚刚欣喜地写出“hello world”的初学者而言,仅仅使用for语句(或while、do……while语句)配合嵌套if语句就可以实现了。那么,此处以求输入的两个整数为例,进行示范。由于工作较忙,能抽出的时间较少,那么此处仅罗列出需要注意的重点内容和拓展内容,针对代码的解析可以参考代码中的注释:
一、注意:
1、如何在代码中实现输入功能?
解析:此处,需要在类前(所有代码之前),调用一个package,即:【import java.util.Scanner;】然后,在代码中(实例参见下面代码)按照如下格式,定义要输入的变量:
Scanner sc=new Scanner(System.in);
System.out.PRintln("请输入第一个整数:");int data1=sc.nextInt();
2、如何能够一次编译运行,多次输入数字执行程序?
解析:此处可以使用while(true){}的方法,将所有要执行的程序循环执行即可,因为当判断条件为真,那么括号内的循环体将一直执行下去。
3、可以使用求余是否为0的办法进行很多程序题目的分析,如判断是否为质数、判断是否为奇数等等等等,详见下附代码。
4、善用三目运算符,例如int min=data1>data2?data2:data1;//使用三目运算符求解输入数字的最小值。
(由于时间关系,不再做更多累述,瑾希望能够帮助更多初学者朋友们解决遇到的此类问题,欢迎批评指正。)
/**需求:写两个方法,分别求两个整数的最大公约数 和 最小公倍数提示:最大公约数 --->较小的这个数开始 依次递减 条件判断 同时用这两个数去做除法,如果能整除哪就是最大公约数*/import java.util.Scanner;//调用可以输入数字的包class G{ public static void main(String[] args){ while(true){//用于多次输入 Scanner sc=new Scanner(System.in); System.out.println("请输入第一个整数:"); int data1=sc.nextInt(); while(data1<0){//如果不是大于零的整数,那么要重新输入 System.out.println("范围错误,请重新输入第一个数:"); data1=scanner.nextInt();} System.out.println("请输入第二个整数:"); int data2=sc.nextInt(); while(data2<0){//如果不是大于零的整数,那么要重新输入 System.out.println("范围错误,请重新输入第二个数:"); data2=scanner.nextInt();} int max=data1>data2?data1:data2;//使用三目运算符求解输入数字的最大值 int min=data1>data2?data2:data1;//使用三目运算符求解输入数字的最小值 int j=0; //求最大公约数:定义i为两个数中最小的,通过循环递减,判断是否能被最大数整除,再嵌套if判断能否被最小数整除 for(int i=min;i<=max;i--){//for语句嵌套if语句的循环的使用 if(max%i==0){ j=i; if(min%j==0){ System.out.println("两个数的最大公约数为:"+j); break; } } } /* 此处还可以使用另一种方法,即使用逻辑运算符&&,减少判断过程,上述方法是为了增强学者对for语句嵌套if语句的理解,方法如下: for(int i=min;i>0;i--){ if(data1%i==0&&data2%i==0){ System.out.println("最大公约数:"+i); break; } } */ //求最小公倍数: for(int a=1;;a++){ int b=max*a; if(b%min==0){ System.out.println("两个数的最小公倍数为:"+b); break; } } } }}
新闻热点
疑难解答