试例如下,当n=16将返回:
{1,2,Three,4,Five,Three,7,8,Three,Five,11,Three,13,14,Fifteen,16}
参考代码1:
package com.gx.demo;
import java.util.Arrays;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);// 声明扫描仪变量
System.out.println("请输入一个正整数:");// 系统提示输入
int length = sc.nextInt();
Object[] obj = new Object[length];
for (int i = 1; i <= length; i++) {
if (i % 3 == 0 && i % 5 == 0) {
obj[i - 1] = "Fifteen";
} else if (i % 3 == 0) {
obj[i - 1] = "Three";
} else if (i % 5 == 0) {
obj[i - 1] = "Five";
} else {
obj[i - 1] = i;
}
}
System.out.println(Arrays.toString(obj));// 输出结果
}
}
输出结果:
例1:
请输入一个正整数:
16
[1, 2, Three, 4, Five, Three, 7, 8, Three, Five, 11, Three, 13, 14, Fifteen, 16]
例2:
请输入一个正整数:
abc
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at com.gx.demo.Test4.main(Test4.java:10)
参考代码2:(处理异常)
package com.gx.demo;
import java.util.Arrays;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);// 声明扫描仪变量
try {
System.out.println("请输入一个正整数:");// 系统提示输入
int length = sc.nextInt();
Object[] obj = new Object[length];
for (int i = 1; i <= length; i++) {
if (i % 3 == 0 && i % 5 == 0) {
obj[i - 1] = "Fifteen";
} else if (i % 3 == 0) {
obj[i - 1] = "Three";
} else if (i % 5 == 0) {
obj[i - 1] = "Five";
} else {
obj[i - 1] = i;
}
}
System.out.println(Arrays.toString(obj));// 输出结果
} catch (Exception e) {
//输出提示,也可以打印异常
System.out.println("输入有误,只能输入正整数");
}
}
}
输出结果:
例1:
请输入一个正整数:
16
[1, 2, Three, 4, Five, Three, 7, 8, Three, Five, 11, Three, 13, 14, Fifteen, 16]
例2:
请输入一个正整数:
abc
输入有误,只能输入正整数
参考代码3:(在参考代码2的基础上优化一下)
package com.gx.demo;
import java.util.Arrays;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);// 声明扫描仪变量
while (true) {
try {
System.out.println("请输入一个正整数:");// 系统提示输入
int length = sc.nextInt();
Object[] obj = new Object[length];
for (int i = 1; i <= length; i++) {
if (i % 3 == 0 && i % 5 == 0) {
obj[i - 1] = "Fifteen";
} else if (i % 3 == 0) {
obj[i - 1] = "Three";
} else if (i % 5 == 0) {
obj[i - 1] = "Five";
} else {
obj[i - 1] = i;
}
}
System.out.println(Arrays.toString(obj));// 输出结果
break;//跳出循环
} catch (Exception e) {
//输出提示,也可以打印异常
System.out.println("输入有误,只能输入正整数");
sc.next();// 继续读取下一个值
}
}
}
}
输出结果:
例1:
请输入一个正整数:
16
[1, 2, Three, 4, Five, Three, 7, 8, Three, Five, 11, Three, 13, 14, Fifteen, 16]
例2:
请输入一个正整数:
abc
输入有误,只能输入正整数
请输入一个正整数:
16
[1, 2, Three, 4, Five, Three, 7, 8, Three, Five, 11, Three, 13, 14, Fifteen, 16]
优点:
添加了一层循环,当输入为正整数时,满足就跳出循环;当输入为非正整数时,提示错误,然后再次调用读取下一个值,直到输入为正整数时,满足再跳出循环。
参考代码4:(不推荐)
package com.gx.demo;
import java.util.Arrays;
public class Test4 {
public static void main(String[] args) {
test(16);
}
public static void test(int n){
Object []arr = new Object[n];
for (int i = 1; i <= n; i++) {
if (i % 3 == 0 && i % 5 == 0) {
arr[i - 1] = "Fifteen";
} else if (i % 3 == 0) {
arr[i - 1] = "Three";
} else if (i % 5 == 0) {
arr[i - 1] = "Five";
} else {
arr[i - 1] = i;
}
}
System.out.print(Arrays.toString(arr));
/* for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+",");
//1,2,Three,4,Five,Three,7,8,Three,Five,11,Three,13,14,Fifteen,16,
}*/
}
}
输出结果:
[1, 2, Three, 4, Five, Three, 7, 8, Three, Five, 11, Three, 13, 14, Fifteen, 16]