当前位置: 首页 > 知识库问答 >
问题:

数组未完全打印

劳麒
2023-03-14
import java.util.Scanner;
import java.util.Arrays;

public class Test4 {
    public static void main(String[] args) {
        int randomNumber;
        int[] allNumbers = new int[12];
        Scanner keyboard = new Scanner(System.in);

        for (int i = 1; i <= allNumbers.length; i++) {
            allNumbers[i] = (int) (Math.random() * 999 + 1);
            System.out.print("How many random numbers? ");
            randomNumber = keyboard.nextInt();
            System.out.print("\n" + "Random numbers: ");
            System.out.print(allNumbers[i] + " ");
            {
                System.out.print("\n");
                System.out.print("\n" + "Even numbers: " + (allNumbers[i] % 2 == 0));
                System.out.print("\n" + "Odd numbers: ");
                break;
            }
        }
    }
} 

*update2:增加了Keyboard.nextint的限制。

在我尝试打印赔率和偶数的部分遇到了“字符串文字不是由双引号关闭”的错误。

*update3:修正了上面的错误(由打字造成)。

import java.util.Scanner;
import java.util.Arrays;
public class Test7 {


public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);
    System.out.print("How many random numbers?: ");
    int size = keyboard.nextInt();
    System.out.print("\n");
    while (size>12 || size<1);

    int[] randNum = new int[size];

    for(int i = 0 ; i < randNum.length ; i++) 
         randNum[i] = (int)(Math.random() * 999 + 1);
    System.out.println("Random numbers: " + Arrays.toString(randNum).replace("]", "").replace(",", "").replace("[", "") + "\n");


    for(int i = 0 ; i < randNum.length ; i++) 
    if(randNum[i] % 2 == 0) {
     System.out.print("\r" + "Even numbers: ");
     System.out.print(randNum[i] + " ");
    } else {
     System.out.print("\r" + "Odd numbers: ");
     System.out.print(randNum[i] + " ");
    }


}}

共有1个答案

南宫建白
2023-03-14

Java数组使用基于零的索引。

for(int i = 0; i < allNumbers.length ; i++)

因此,for循环应该如上。否则您可能应该获得ArrayIndexOutOfBoundException。

此外,您在for循环中包含的break语句导致循环不运行一次以上。应该始终使用带有条件的break语句(例如:在if块内)

 类似资料:
  • 我不确定如何打印数组;我尝试使用arrays.toString(nums),但它仍然不起作用。我需要做什么才能解决这个问题? 导入java.util.Arrays; }

  • 我是Android Studio的新手,最后一天在我的mac上下载了它,但我永远无法使用它。组件下载即将结束,然后这个错误不断出现。请帮忙。我真的很想做我的项目。 警告:安装过程中发生错误:无法下载“https://dl.google.com/android/repository/android_m2repository_r30.zip”:读取超时,响应:200 OK 上述警告不断发生。

  • 寻找完全数。 思路说明 所谓完全数,从维基百科的完全数词条中得到: 完全数,又称完美数或完备数,是一些特殊的自然数:它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身,完全数不可能是楔形数。 例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6,恰好等于本身。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,

  • 如何使用5个CompletableFutures异步执行20个可运行任务(或1个任务20次)? 这就是我得到的: 如果我执行这段代码,我可以看到它只运行3次。异步获取():3,然后在1 for()迭代中剩下2 所以,我想做所有20个任务,尽可能异步

  • 刚刚开始探索reactor项目及其抽象、Mono和Flux,并希望了解与Java8 barebones CompletableFuture的基本区别。 下面是我的一个简单代码: 首先,并不奇怪。通过ForkJoinPool调度函数的执行,“end”行立即打印,程序终止,因为主线程在这里确实很短--正如预期的那样。 但是将主线程阻塞在那里。此外,在函数中打印的线程名是主线程。因此,我看到的是顺序/阻

  • 这是我的代码:- 为什么程序不打印完美的数字? 我已经检查了很多次代码,但我找不到解决方案。请告诉我代码中出了什么问题。提前谢谢 任何帮助都将不胜感激。。。。