設計一個數組,當輸入的正整數爲n時,其中只能被3整除的賦值爲Three,只能被5整除的賦值爲Five,既能被3整除又能被5整除的賦值爲Fifteen,其他則爲數字。

試例如下,當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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章