JAVA—在while循环之外的何处打印整数?
变量在我的语言中,但这并不影响我的问题。 不要介意初始化部分,变量不是英文的。 我的问题是:在我的程序中,我必须在哪里打印结果。我已经尝试过for循环,但例如,程序第一次通过循环时,结果是6,然后下一次结果是4,然后下一次是0,下一次是16 它以这种形式打印出来:初始数字为vish=16,shir=29,n=3 6. 4. 0 16 。。我想实现的是它打印出26。。实际上是6+4+0+16JAVA—在while循环之外的何处打印整数?,java,exception,printing,while-loop,Java,Exception,Printing,While Loop,变量在我的语言中,但这并不影响我的问题。 不要介意初始化部分,变量不是英文的。 我的问题是:在我的程序中,我必须在哪里打印结果。我已经尝试过for循环,但例如,程序第一次通过循环时,结果是6,然后下一次结果是4,然后下一次是0,下一次是16 它以这种形式打印出来:初始数字为vish=16,shir=29,n=3 6. 4. 0 16 。。我想实现的是它打印出26。。实际上是6+4+0+16 。。有时java会在线程main java.lang.arithmetricexception:/by z
。。有时java会在线程main java.lang.arithmetricexception:/by zero中报告异常,您可以在完成所有计算以获得正确结果后将其打印出来。 在你的例子中,你有stranica2的计算,它可以是空的。你应该检查一下 如果斯特拉尼卡=0{继续;} 你的解决方案的问题是我没有止境。i开始等于n,然后向下,while循环中的检查也适用于小于n的数字,这意味着您有一个无限循环。像sum+=值一样计算总和;在循环中,当循环结束时,打印总和 更正代码:
if (vish % stranica2 == 0 && shir % stranica2 != 0) {
ostanek2 = vish % stranica2; // here ostanek2 = 0
ostala_vish = vish - ostanek2;
plosce_vish = ostala_vish / stranica2; // so here ostala_vish is divided by zero
ostanek1 = shir % stranica1;
ostala_shir = shir - ostanek1;
plosce_shir = ostala_shir / stranica2;
shir = ostanek1;
ploscice = plosce_shir*plosce_vish;
}
因为,循环中每次迭代后的ploscice值为:
6.
4.
0
0不是16
结果是10
最后但并非最不重要:
你为什么这么做
10
stranica1不是等于0吗?你怎么会得到ostanek1值?它会给你一个被零除的例外
将其修复为:
ostanek1 = shir % stranica1;
你的打印报表在哪里?
import java.util.*;
public class Example {
public static void main(String[] args) {
// TODO code application logic here
Scanner beri = new Scanner(System.in);
long vish = 16;
long shir = 29;
long n = 3;
long del1 = 0;
long del2 = 0;
long stranica1 = 0;
long stranica2 = 0;
long ostanek1 = 0;
long ostanek2 = 0;
long ostala_shir = 0;
long plosce_shir = 0;
long ostala_vish = 0;
long plosce_vish = 0;
long ploscice = 0;
long del_dva = 0;
long del_n = 0;
long i = n;
//declare and initialize the following variable named sum
long sum = 0;
//don't use i<=n since this is a decrementing loop. Use i >= 0 instead
while (i >= 0) {
del_dva = 2;
del_n = i;
stranica2 = (long) Math.pow(del_dva, del_n);
if (vish % stranica2 == 0 && shir % stranica2 != 0) {
ostanek2 = vish % stranica2;
ostala_vish = vish - ostanek2;
plosce_vish = ostala_vish / stranica2;
ostanek1 = shir % stranica2; // you made a mistake here.
//If you write stranica1, then stranica1 = 0,
//and that's why you get the divide by zero exception
ostala_shir = shir - ostanek1;
plosce_shir = ostala_shir / stranica2;
shir = ostanek1;
ploscice = plosce_shir * plosce_vish;
}
//Do the following to get the sum of ploscice
sum = sum + ploscice;
i--;
}
//println should be outside the while loop. Same applies for for loop
System.out.println("The sum is = " + sum);
}
}
10
ostanek1 = shir % stranica1;
ostanek1 = shir % stranica2;