【发布时间】:2020-03-30 15:26:57
【问题描述】:
下面的代码 sn-p。我试图在 for 循环之外初始化变量,但仍然收到相同的错误。
我无法在 for 循环之外打印变量数组。
public class count_test01 {
public static void main(String[] args) {
int n = 2;
countTest(n);
}
public static void countTest(int num){
//int[] longCnt01_intArray01;
int cnt01, cnt02;
long longCnt01, longCnt02;
longCnt01 = 1;
// int holds 10 digits in length, MAX is 2,147,483,647.
// long holds holds 19 digits in length, MAX is 9,223,372,036,854,775,807.
for(int i = 1; i <= 11; i++) { //63; i++) { //(long i = 1; i <= 9000000000000000000L; i++) {
longCnt01 *= i; //2; //at 2, i can be <= 63.
// Convert Integer Count to String.
String longCnt01String = BigDecimal.valueOf(longCnt01).toPlainString();
//Convert String to Integer Array.
int[] longCnt01_intArray = new int[longCnt01String.length()];
for (int i1 = 0; i1 <= longCnt01String.length()-1; i1++){
longCnt01_intArray[i1] = longCnt01String.charAt(i1) - '0';
}
// Create new integer array, save a copy.
int[] longCnt01_intArray01 = new int[longCnt01_intArray.length];
for( int i2 = 0; i2 < longCnt01_intArray.length; i2++){
longCnt01_intArray01[i2] = longCnt01_intArray[i2];
}
System.out.println("Count of i : " + i + "\n");
System.out.println("Count of longCnt01 : " + longCnt01 + "\n");
System.out.println("Size of longcnt01 : " + Arrays.toString(longCnt01_intArray) + "\n\n");
//System.out.println("Size of longCnt01 : " + Arrays.toString(longCnt01_intArray01) + "\n");
}
System.out.println("Size of longCnt01 : " + Arrays.toString(longCnt01_intArray01) + "\n");
System.out.println("Count of longCnt01 : " + longCnt01 + "\n");
}
抱怨代码太多,输入的文本细节不够。
【问题讨论】:
-
编程的要点之一是如何在正确的范围内声明变量。如果您甚至没有在正确的范围内声明
longCnt01_intArray01,为什么还要在互联网上询问这些必需品?出于好奇,我将此代码复制到我的 IDE 中。什么是“longCnt01_intArray”? -
Java 新手。正确的范围是多少?为什么我不能在 for 循环之外打印初始化变量。
-
变量在循环外是不可见的,为什么会这样?
-
这就是我不明白的。为什么不应该是可见的?用同一个方法初始化后不就是全局变量吗?
-
好的,谢谢 Tim Hunter。
标签: java arrays for-loop printing int