10/10/2018, 10:44

Cho em hỏi về cái code bảng cửu chương = Javascript

Code:
function result()
{
var c=document.getElementById("input").value;
 for(i=1;i<=10;i++)
  {
  d=c*i;
  b="";
  b=b+c+"x"+i+"="+d+"<br />";
  }
   ketqua.innerHTML=b;
}
- Tại sao khi in kết quả nó lại mỗi 1 phép toán tương ứng với lần lặp cao nhất . VD khi em nhập vào 1 số N=10 ở Textbox thì kết quả ở thẻ <div> lại hiện ra chỉ là 10x10=100 . Mà em kiểm tra mãi không biết sai chỗ nào .

- Em hiểu code trên thế này :

Cho biến i chạy từ 1->10 , biến b ban đầu là rỗng để mục đích là nó nối kết quả của các lần lặp thành 1 bảng cửu chương . Vậy tại sao nó không nối kết quả của các lần lặp với nhau mà lại chỉ in ra luôn kết quả của lần lặp thứ 10.

- Đây như cái code PHP bảng cửu chương này chạy tốt mà sao Javascript lại chỉ ra thế kia nhỉ :

<?php
if(isset($_POST["a"]))
{
$so=$_POST["a"];
$chuoi="";
for($i=0;$i<=10;$i++)
{
$tich=$so*$i;
$chuoi=$chuoi.$so."x".$i."=".$tich." ";
}
}
?>
thuyduongcd viết 12:55 ngày 10/10/2018
Đem cái này ra ngoài vòng lặp
Code:
  b="";
Nhìn trong đoạn code php xem, thấy cái $chuoi="" nằm trước for{} hay không?
haicop viết 12:59 ngày 10/10/2018
Send cả code đi bạn ....................


Được gửi bởi học lập trình
Code:
function result()
{
var c=document.getElementById("input").value;
 for(i=1;i<=10;i++)
  {
  d=c*i;
  b="";
  b=b+c+"x"+i+"="+d+"<br />";
  }
   ketqua.innerHTML=b;
}
- Tại sao khi in kết quả nó lại mỗi 1 phép toán tương ứng với lần lặp cao nhất . VD khi em nhập vào 1 số N=10 ở Textbox thì kết quả ở thẻ <div> lại hiện ra chỉ là 10x10=100 . Mà em kiểm tra mãi không biết sai chỗ nào .

- Em hiểu code trên thế này :

Cho biến i chạy từ 1->10 , biến b ban đầu là rỗng để mục đích là nó nối kết quả của các lần lặp thành 1 bảng cửu chương . Vậy tại sao nó không nối kết quả của các lần lặp với nhau mà lại chỉ in ra luôn kết quả của lần lặp thứ 10.

- Đây như cái code PHP bảng cửu chương này chạy tốt mà sao Javascript lại chỉ ra thế kia nhỉ :

<?php
if(isset($_POST["a"]))
{
$so=$_POST["a"];
$chuoi="";
for($i=0;$i<=10;$i++)
{
$tich=$so*$i;
$chuoi=$chuoi.$so."x".$i."=".$tich."\n";
}
}
?>
học lập trình viết 12:57 ngày 10/10/2018
Chị thùy dương CD có thể giải thích giúp em tại sao phải ở ngoài vòng lặp thì nó mới chạy ra như mình mong muốn được không chị , em rất cám ơn nếu chị giúp em
zmt264 viết 12:51 ngày 10/10/2018
Được gửi bởi học lập trình
Chị thùy dương CD có thể giải thích giúp em tại sao phải ở ngoài vòng lặp thì nó mới chạy ra như mình mong muốn được không chị , em rất cám ơn nếu chị giúp em
Chỉ dựa vào cái tên mà biết là chị à ? siêu thế , nhỡ là anh, hay là em (trai, gái) thì sao.

Trước khi lập trình JS bạn đã từng lập trình C hay Pascal, hay gì đó chưa?
honnhienh viết 12:59 ngày 10/10/2018
bác thuyduongcd dính chưởng rùi hơi bị khó đỡ.

[=========> Bổ sung bài viết <=========]

nhờ thầy zmt264 giúp cho bác àh.
học lập trình viết 12:57 ngày 10/10/2018
Em cũng học PasCal rồi nhưng mà em học cái đó không được hiểu lắm , anh chỉ giúp em vì sao để biến b==""; ngoài vòng lặp thì nó nối hết các lần lặp mà để trong vòng lặp thì nó lại chỉ in ra lần lặp cao nhất với được không anh ???
honnhienh viết 13:01 ngày 10/10/2018
vì mỗi khi i tăng lên 1 thì cái biến c bị gắn bằng 0 kết thúc vòng lập thì giá trị c này nhận giá trị tại i cao nhất. ở đây bạn phải đưa c ra ngoài vào trong cái hàm này thì bạn hay dùng cái temp nào đó lưu kết quả sau đó cộng dồn vào c thì nó mới in ra đầy đủ. Bạn học PasCal rùi thì cũng biết được phảm vị ảnh hưởng của biến chứ.
học lập trình viết 12:59 ngày 10/10/2018
Em chưa hiểu , tại sao biến c lại gán bằng 0 , biến c là giá trị mà nhập vào Textbox cơ mà . Không hiểu gì hết

Anh nói cho dễ hiểu chút được ko anh ???
zmt264 viết 12:58 ngày 10/10/2018
Được gửi bởi học lập trình
Em chưa hiểu , tại sao biến c lại gán bằng 0 , biến c là giá trị mà nhập vào Textbox cơ mà . Không hiểu gì hết

Anh nói cho dễ hiểu chút được ko anh ???
đã từng học Pascal rồi à, thế khi học, có biết khái niệm Debug, Watch là gì ko? Có dùng nút F4, F7, F8 (chạy đến vị trí, chạy từng dòng lệnh ) bao giờ chưa?
Bài liên quan
0