首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这段代码不生成随机代码?

为什么这段代码不生成随机代码?
EN

Stack Overflow用户
提问于 2012-01-25 02:33:10
回答 4查看 134关注 0票数 0
代码语言:javascript
运行
复制
import java.util.ArrayList;
import java.util.Random;

public class Generator{
//9352141NTBG1223

public static void main(String[] args) {
    ArrayList<Integer> intArray = new ArrayList<Integer>();
    ArrayList<Integer> int2Array = new ArrayList<Integer>();
    ArrayList<Character> charArray = new ArrayList<Character>();

    int one = 0;
    int two = 0;
    int three = 0;
    int four = 0;
    int five = 0;
    int six = 0;
    int seven = 0;
    int N_one = 0;
    int N_two = 0;
    int N_three = 0;
    int N_four = 0;
    Character Middle1 = 'A';
    Character Middle2 = 'A';
    Character Middle3 = 'A';
    Character Middle4 = 'A';

    Random gen1 = new Random();

    charArray.add(Middle1);
    charArray.add(Middle2);
    charArray.add(Middle3);
    charArray.add(Middle4);
    intArray.add(one);
    intArray.add(two);
    intArray.add(three);
    intArray.add(four);
    intArray.add(five);
    intArray.add(six);
    intArray.add(seven);
    int2Array.add(N_one);
    int2Array.add(N_two);
    int2Array.add(N_three);
    int2Array.add(N_four);

    for(int i: intArray) {
    int k = gen1.nextInt(10);
    i = k;
    }
    for(int i: int2Array) {
    int k = gen1.nextInt(10);
    i = k;
    }
    for(char i: charArray) {
        int b = gen1.nextInt(20);
        switch (b) {
        case 1: i = 'H'; break;
        case 2: i = 'R'; break;
        case 3: i = 'F'; break;
        case 4: i = 'Y'; break;
        case 5: i = 'U'; break;
        case 6: i = 'Q'; break;
        case 7: i = 'T'; break;
        case 8: i = 'N'; break;
        case 9: i = 'B'; break;
        case 10: i = 'L'; break;
        case 11: i = 'K'; break;
        case 12: i = 'P'; break;
        case 13: i = 'I'; break;
        case 14: i = 'Z'; break;
        case 15: i = 'X'; break;
        case 16: i = 'V'; break;
        case 17: i = 'C'; break;
        case 18: i = 'E'; break;
        case 19: i = 'M'; break;
        }
    }
    System.out.print("Generated Code: ");
    for(int i: intArray) {
    System.out.print(i);
    }
    for(char i: charArray) {
    System.out.print(i);
    }
    for(int i: int2Array) {
    System.out.print(i);
    }
}

  }

我是一个相当有经验的程序员,所以我设计了一个代码,这个代码过去是在方法和东西中,但它就是不起作用,所以我直接在main方法中尝试它,它不会生成随机代码,它只是打印出默认值!怎么回事我什么都试过了!这没有任何意义!

EN

Stack Overflow用户

发布于 2012-01-25 02:39:29

例如,在for(int i: intArray)中,i不是intArray元素的别名;它只是设置给intArray的每个元素的变量。所以这就是:

代码语言:javascript
运行
复制
    for(int i: intArray) {
    int k = gen1.nextInt(10);
    i = k;
    }

等同于:

代码语言:javascript
运行
复制
    for(int index = 0; index < intArray.size(); ++index)
    {
        int i = intArray[index];
        int k = gen1.nextInt(10);
        i = k;
    }

(即,它将i设置为等于intArray[index],但随后将其设置为完全不同的值)。你真正需要的是:

代码语言:javascript
运行
复制
    for(int index = 0; index < intArray.size(); ++index)
        intArray[index] = gen1.nextInt(10);
票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8992106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档