KENNY
Lv 5
KENNY 發問時間: 電腦與網際網路程式設計 · 10 年前

求解 JAVA 問題 2題~

第一題

int[]a=(30.50.7.90.4.8.60.2.1.10);

int[]b={60.80.4.3.10.7.40.9.50.6};

int[]c=hew int[10];

試著將a陣列與b陣列的值,逐個相加,並存至c陣列

90.130.11.93.14.15.100.11.51.16

第2題

請撰寫程式,要求使用者輸入10個正整數,若輸入值為負整數或0,請提示使用者重新輸入。

印出現使用者共輸入幾次,以及該10個正整數。

import java.util.Scanner;

public class ok {

public static void main(String[] args) {

謝謝

已更新項目:

您好 Chen Yuan

請問 迴圈可不可以幫我改成 while

我想看看 for 和 while 的寫法~

謝謝!

2 個已更新項目:

code 2 也能麻煩您幫我轉一下嗎?

全部~

3 個已更新項目:

我看不太懂 如何將for 轉成 while

如:

for (int x = 0; x < a.length; x++) {

c[x] = a[x] + b[x];

}

__________

改為

while (times <= a.length - 1) {

c[times] = a[times] + b[times];

times++;

}

4 個已更新項目:

這一段

c[times] = a[times] + b[times];

times++;

}

能理解

_________

但這一段 看不懂

for (int x = 0; x < a.length; x++) {

while (times <= a.length - 1) {

x++ = times++ ←ok

5 個已更新項目:

大大 我還是想看您用while寫

剩下我在自行研究!!

謝謝~

1 個解答

評分
  • 10 年前
    最佳解答

    code 1

    public static void main(String[] args) {

    int[] a = { 30, 50, 7, 90, 4, 8, 60, 2, 1, 10 };

    int[] b = { 60, 80, 4, 3, 10, 7, 40, 9, 50, 6 };

    int[] c = new int[10];

    for (int x = 0; x < a.length; x++) {

    c[x] = a[x] + b[x];

    }

    for (int x = 0; x < c.length; x++) {

    System.out.print(c[x] + " ");

    }

    }

    }

    code 2:

    import java.util.Scanner;

    public class ok {

    public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    int[] array = new int[10];

    int times = 0;

    int address = 0;

    while (scan.hasNextInt()) {

    array[address] = scan.nextInt();

    if (array[address] > 0) {

    address++;

    times++;

    } else {

    System.out.println("請重新輸入大於0的數");

    times++;

    }

    if (address > 9) {

    break;

    }

    }

    for (int x = 0; x < array.length; x++) {

    System.out.println("輸入的第" + (x + 1) + "個數為:" + array[x] + " ");

    }

    System.out.println("輸入次數為" + times + "次");

    }

    }

    2011-03-23 12:43:15 補充:

    您是說code1嗎??

    2011-03-23 12:53:03 補充:

    還是說連輸出都要呢!?

    2011-03-23 14:03:35 補充:

    code 1:

    for (int x = 0; x < a.length; x++) {

    c[x] = a[x] + b[x];

    }

    改為

    while (times <= a.length - 1) {

    c[times] = a[times] + b[times];

    times++;

    }

    意思上都是一樣的

    2011-03-23 22:07:48 補充:

    for (int x = 0; x < a.length; x++)

    1.(int x = 0)

    先設定一個int x 來表示陣列 a的存放address

    2.(x < a.length)

    設定 x 值的範圍小於陣列a的長度(如比陣列 a長度大的話會error)

    如x 大於陣列 a的長度 則結束此for迴圈

    while (times <= a.length - 1)

    while迴圈的()之中需要的boolean

    也就是說需要一個式子 可供判斷此式子是true 或是 false

    如果是true 則繼續執行

    否則 結束掉while迴圈

    2011-03-23 22:12:11 補充:

    在此while迴圈的判斷式為 times<=a.length

    如果 times小於或等於陣列 a的長度時

    則持續執行while迴圈

    當while每執行一次

    裡面的times 就增加1

    直到 times大於或等於陣列 a的長度時

    則結束掉while迴圈

    2011-03-23 22:19:40 補充:

    對於印出的要求

    小弟通常沒看過有人用while去寫

    如果大大堅持要

    不妨建議大大自己嘗試看看

    如果還是不行

    在告訴小弟

    小弟在幫您

    2011-03-23 22:19:58 補充:

    放在意見區裡面囉

    2011-03-24 20:54:55 補充:

    import java.util.Scanner;

    public class ok {

    public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    int[] array = new int[10];

    int times = 0;

    int address = 0;

    int temp = 0;

    while (scan.hasNextInt()) {

    array[address] = scan.nextInt();

    if (array[address] > 0

    2011-03-24 20:55:14 補充:

    {

    address++;

    times++;

    } else {

    System.out.println("請重新輸入大於0的數");

    times++;

    }

    if (address > 9) {

    break;

    }

    }

    while (temp < array.length) {

    System.out

    .println("輸入的第" + (temp + 1) + "個數為:" + array[temp] + " ");

    temp++;

    }

    2011-03-24 20:55:23 補充:

    System.out.println("輸入次數為" + times + "次");

    }

    }

    2011-03-24 20:56:13 補充:

    這是code 2 全改為while的程式碼

    希望有幫助到你

還有問題?馬上發問,尋求解答。