刚学这个语言,写了一个不知道是哪里错了【已解决】
本帖最后由 lmq2008 于 2017-3-21 09:35 编辑刚刚才学,所以想请教下,不知道我是哪里出错了呀,好像是while里面只能是整数是吗?如果是从小数开始一直往上面加的话,应该什么写,先在此说声谢谢,
public class text{
public static void main(String[] args){
double b=3.0;
double sum=30000;
double i=0.1;
double c=b+i;
while(i<=0.3){
sum=sum+c*360;
System.out.println(sum);i++;
}
}
}
楼主大概这个意思
----------------------------------------------------------------------------
public class Demo1 {
public static void main(String[] args) {
double b=3.0;
double a=30000;
double i=0.1;
double c=b+i;
while(i<=0.3){
System.out.println(i);
a=a+c*360;
System.out.println(a);i+=0.1;
}
System.out.println(i);
}
}
--------------------------------------------------------------------------------------------
0.1
31116.0
0.2
32232.0
0.30000000000000004
----------------------------------------------------
从结果看只输出了2次
所以建议楼主做判断的时候尽量用int LZ数学不好? 虽然不知道你说的出问题是出了什么问题
不过个人感觉你要先弄明白 i++; 在循环里每一步执行的时候是什么效果,完了估计就能解决你的疑惑了
然后提个建议,你定义变量可以把i定义为1,2,3然后在用它的时候再让它/10
0772boy 发表于 2017-3-20 12:39
虽然不知道你说的出问题是出了什么问题
不过个人感觉你要先弄明白 i++; 在循环里每一步执行的时候是什么效 ...
本身我想用替换法——把C换掉,也换成了I是整数的,我知道I一个是先+然后再算,一个是算后再加。我是刚学的可能还太不明白。 这个单单是输出一次而已吧 看不懂啊 0772boy 发表于 2017-3-20 12:39
虽然不知道你说的出问题是出了什么问题
不过个人感觉你要先弄明白 i++; 在循环里每一步执行的时候是什么效 ...
就是原来有一个A数+按3开始加0.1(递增)*360,然后得出来的数再与A相加,就这样循环下去。 lmq2008 发表于 2017-3-20 12:41
本身我想用替换法——把C换掉,也换成了I是整数的,我知道I一个是先+然后再算,一个是算后再加。我是刚学 ...
你对C的操作不在循环里啊,你每次循环C都是最初的值 按你的意思每次循环都要输出一个sum * C的值,那你应该把C放在循环里面去每次都C= (b*10+i)/10然后定义一个变量比如sum2=sum*C,然后输出sum2
你sum要让它固定值就把它放循环外面去,你这基础没学好吧,多看基础教程 i++的意思是 每次+1,你还是给他写成i+=0.1吧