为什么循环不会在其条件下作为有效类型花费很长时间?
Why don't loops take long as a valid type in its conditions?
我正在做一些 Project Euler 练习,需要使用非常大的数字。
我仍然需要使用一些基本循环,例如 for 循环或 while 循环。
我的 IDE Netbeans 给我一个错误,我无法理解。
long l = 10000000000L;
while (l<10000000000000){
}
for (long k =0;k<10000000000000;k++){
}
在两个循环中我都得到了评论:"Integer number too large : 10000000000000"
当我清楚地使用 'long' 时,它怎么能谈论整数呢?
这些循环仅适用于 'int' 吗?
如果是这样,我将如何使用 'long' 作为类型具有相同的功能?
看起来很简单:)
long l = 10000000000L;
while (l < 10000000000000L) {
}
for (long k = 0; k < 10000000000000L; k++) {
}
您需要添加 l
(或 L
)后缀以将号码标记为 long
:
while (l<10000000000000l){
}
for (long k =0;k<10000000000000l;k++){
}
否则该数字将被视为整数,并且它高于整数范围内的最大值(2147483647
)。
我正在做一些 Project Euler 练习,需要使用非常大的数字。 我仍然需要使用一些基本循环,例如 for 循环或 while 循环。
我的 IDE Netbeans 给我一个错误,我无法理解。
long l = 10000000000L;
while (l<10000000000000){
}
for (long k =0;k<10000000000000;k++){
}
在两个循环中我都得到了评论:"Integer number too large : 10000000000000" 当我清楚地使用 'long' 时,它怎么能谈论整数呢? 这些循环仅适用于 'int' 吗? 如果是这样,我将如何使用 'long' 作为类型具有相同的功能?
看起来很简单:)
long l = 10000000000L;
while (l < 10000000000000L) {
}
for (long k = 0; k < 10000000000000L; k++) {
}
您需要添加 l
(或 L
)后缀以将号码标记为 long
:
while (l<10000000000000l){
}
for (long k =0;k<10000000000000l;k++){
}
否则该数字将被视为整数,并且它高于整数范围内的最大值(2147483647
)。