java如何让循环里的值在循环外也可以使用?

package f;

public class E {
public static void main(String[] args) {
String s2[]= {"1","2","3","4","5"};
String s[]=new String[7];
for (String s1:s) {
if (s1==null) {
if(s2.length<s.length) {
for (int i=0;i<s2.length;i++) {
s1=s2[i];
System.out.println(s1);
}
//return;
}else {
for (int i=0;i<s.length;i++) {
s1=s2[i];
System.out.println(s1);
}
return;
}
}
}
//System.out.println(s.length);
}
}
我要的是s1和s2[i]进行一对一替换,这么输出的都是长度的乘方,谁知道怎么弄,我想的是这两个循环是同级的,将第一个循环的值拿出到第二个循环中使用,这样就可以实现一对一替换了

第1个回答  2020-11-02

首先   foreach循环便于获取元素  但是对元素值进行操作是比较麻烦的

对s1进行赋值是无法改变数组中的值 

你在末尾对s数组进行输出就可以看到s数组中的值依然是null

对象和对象引用相关的知识你应该去了解一下


然后 两个并列循环的问题   

两个循环所要做的操作其实是一样的 只是结束循环的条件不同    

并且该条件不具备同时存在的可能 那你可以先将条件确定下来 再进行操作

例如

int len = s2.length < s.length ? s2.length : s.length;
for (int i = 0; i < len; i++) {
s1 = s2[i];
System.out.println(s1);
}


最后 如果只是将数组元素一对一替换

String s2[] = {"1", "2", "3", "4", "5"};
String s[] = new String[7];
int len = s2.length < s.length ? s2.length : s.length;
for (int i = 0; i < len; i++) {
s[i] = s2[i];
}

追问

你这样只是实现单纯的替换,这个我开始也能做到,只是没你这么简单而已,我要的是如果指定s的长度为7,那么输出的结果必须是7个元素,而这7个元素都是s2数组中的元素,我要的结果是如果输出7个元素,那么元素应该分别为1 2 3 4 5 1 2...类似这样一直循环下去

第2个回答  2020-11-03
用for嵌套循环就可以了应该
并且将s1变量定义在循环外部就行了
第3个回答  2020-11-03
String[] s2= {"1","2","3","4","5"};
String[] s=new String[10];
for(int i =0;i<s.length;i++){
s[i] = s2[i%s2.length];
}
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
是要这种循环结果吗追问

是这个意思,为什么i%s2.length的结果就正好是数字的位置

追答

因为你要的是能够一直循环把s2中的元素放进去,所以就用循环中的i对s2的长度求余数就行了,因为i为0时求余也为0,i为5时求余也为0,所以就能一直重复的把s2的元素放进去了

本回答被提问者采纳
第4个回答  2020-11-02
也是可以循环电竞的,你可以了解一下,为什么要使用这样的情况?
相似回答