我最近开始学习Java,并希望编写从1到100计算数字的代码(结果将是5050)
代码应该像1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 ......等等
我已使用此代码对其进行了测试:
public class T35{
public static void main(String[] args) {
int nmb;
for(nmb= 1; nmb<= 100; nmb++){
System.out.println(nmb);
}
}
}
但结果是它在没有添加数字的情况下从1变为100。
不确定是否需要使用while
,但无法计算数学。
答案 0 :(得分:2)
nmb++
等于nmb = nmb + 1
。它只会增加一个,直到它停止。
您应该添加一个新变量,让我们称之为total
,并在每次迭代时将nmb
加到它上面。
public class T35{
public static void main(String[] args) {
int nmb;
int total = 0;
for(nmb= 1; nmb<= 100; nmb++){
total = total + nmb;
}
System.out.println(total);
}
}
这将做你想要的。
答案 1 :(得分:2)
您已经开始通过实施for
循环来学习Java。不幸的是,这可能是整个语言中最不直观的语法。它继承自c
,虽然方便,但实际上没有意义:三个位置的含义与自然语言没有相似之处(与if
,while
,implements
不同等等。)。从简单的结构开始要好得多,直到你掌握了一切。
Java 8提供了一种更直观的(在我看来)表示要添加的一组数字的方式。在你的情况下,你真的不想迭代从1到100的所有数字。你只想要一种方法来表示所有这些数字,然后总结它们。在Java 8中,这个概念由整数流表示:IntStream
类。它提供了一种方便的方式来询问“x和y之间的所有整数”:rangeClosed
方法。它提供了一种将所有整数添加到一起的方法:sum
方法。
因此,您的操作可以使用一个简单的Java语句实现:
IntStream.rangeClosed(1, 100).sum();
这似乎是一个非常简单的陈述:给我一个1到100范围内的整数流,然后求它们。更好的是,你不需要声明一个你没有真正用过的变量。
答案 2 :(得分:1)
输出nmb
的值,该值是您迭代的数值,不会使用当前总和增加实际值。
您应该在循环之前引入一个局部变量来计算和维护实际总和。
此外,int nmb;
可以直接在循环中声明
缩小变量的范围使代码更加健壮。
public class T35{
public static void main(String[] args) {
int sum = 0;
for(int i= 1; i<= 100; i++){
sum += i;
System.out.println(sum);
}
}
}
答案 3 :(得分:1)
嘿,你可以找到1到100这样的总和。只是一个选择。
您可以使用数学公式来计算数字之和,即n(n + 1)/ 2
public class test {
public static void main(String[] args) {
int i =100;
int sum = (i)*(i+1)/2;
System.out.println(sum);
}
}
答案 4 :(得分:0)
使用此代码。它会打印像
这样的值1 + 2 + 3 .. + 100 = 5050
public class T35{
public static void main(String[] args) {
int total=0;
StringBuilder stringBuilder=new StringBuilder();
for(int nmb= 1; nmb<= 100; nmb++){
total+=nmb;
stringBuilder.append(nmb);
if(nmb!=100)
stringBuilder.append("+");
}
stringBuilder.append(" = "+total);
System.out.println(stringBuilder.toString());
}
}