Hỏi về kết quả của vòng lặp ở 2 chương trình và Scanner

tại sao lặp trong lặp for ở ct2 lại cho kq khác với lặp trong lặp for và while ở ct ạ:
ct1:

package baitapcuacorejava;

public class Bai53 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int k=1,i=1;
		int fact=1;
		int sum=0;
		for(k=1;k<=7;k++)
		{
			while(i<=k)
			{
				fact*=i;
				i++;
			}
			sum+=fact;
		}
		System.out.println("Tổng của dãy đã cho là: "+sum);
	}

}

ct2:

package baitapcuacorejava;

public class Bai53 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int k=1,i=1;
		int fact=1;
		int sum=0;
		for(k=1;k<=7;k++)
		{
			for(i=1;i<=k;i++)
				fact*=i;
			sum+=fact;
		}
		System.out.println("Tổng của dãy đã cho là: "+sum);
	}

}

Ngoài ra trong Eclipse tại sao hàm import java.util.Scanner; đã được khai báo nhưng lúc nhập dữ liệu cho 1 biến n nào đó thì lỗi token never used;

Mình mới học C được 1 tháng thôi nên nói sai thì bỏ qua nha, chỗ dòng for lúc lặp thì gán i=1 còn vòng while ko thấy gán i=1 phía trên while nên lặp lần thứ 2 i bị sai. ko biết mình nghĩ vậy có đúng ko.

2 Likes

thử thêm int i=1; trên dòng while xem ra đúng ko bạn

Đồng ý với bạn này :slight_smile:, bạn thớt test thử xem

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?