而如果循环代码错误

时间:2016-02-14 20:33:10

标签: java loops if-statement while-loop

问题是想象一个程序将文件压缩到原始大小的80%并将它们存储在存储介质上。在存储压缩文件之前,必须将其分成每个512字节的块。编写一个程序,首先读取存储介质上可用的块数。然后,在循环中,读取文件的未压缩大小,并确定压缩文件是否适合存储介质上留下的空间。如果是这样,程序应该压缩并保存文件。它会一直持续到遇到超出媒体可用空间的文件。

但是,我的代码不断返回不正确的整数....

import java.util.Scanner;

public class HW2Q2

{

public static void main(String[] args)

{

int size;

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter the number of blocks available");

size=keyboard.nextInt();

System.out.println("Available number of blocks is " + size);

int filesize;


while(size!=0)

{

System.out.println("Enter the size of the file that is to be stored");

filesize=keyboard.nextInt();

filesize=filesize/512*80/100;



System.out.println("compressed file size is " + filesize);

if(filesize>size)

{

System.out.println("the number of blocks available, " + size + " is less than the required number, " + filesize);

break;

}

else
size=size-filesize;
{
System.out.println("available number of blocks is " + size);

}

}

}}

1 个答案:

答案 0 :(得分:1)

您永远不会为变量size分配新值,而只会为sizenew分配新值。因此,当您最终打印出没有可用空间时,它将打印原始尺寸。