試例如下,當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]