javascript - 如何使用“while”循环使用 JavaScript 制作反向星号三角形
问题描述
我对这段代码的目标是使用提示中使用的给定输入显示一个反向星号直角三角形(右上方的直角)。例如,如果用户输入 5,则 html 正文上的输出应为:
*****
****
***
**
*
这是我的代码,这产生了几乎我需要的东西,但是我在添加空格时遇到了麻烦,例如,第一行中的零个空格,第二行中的一个空格,第三行中的两个空格,等等。
document.write("<table border=1>"); //start table, *set border=0 when finished*
var height, something, spaces;
height = Number(prompt("Please enter a height.")); // prompts for height
something = height; //******place-holder, pick new variable name******
var counter, counter_2;
spaces = 0;
counter = 1;
row = 0;
column = 0;
while (something != 0) // continues until something = 0
{
document.write("<tr>"); // start row
while ((row > 0) && (column < height)) {
document.write("<td>" + " " + "</td>");
column++;
}
while (counter <= height) // continues until counter = height
{
document.write("<td>" + "*" + "</td>"); // adds "*"
counter++; // add 1 to counter
column++;
}
something--; // subtract 1 from "something"
counter = 1; // reset counter to 1
height--;
column = 0;
row++;
document.write("</tr>"); // end row
}
document.write("</table>"); // end table
解决方案
你唯一的一个条件是错误的
代替
while ((row > 0) && (column < height)) {
尝试
while ((row > 0) && (column < row)) {
document.write("<table border=1>"); //start table, *set border=0 when finished*
var height,something,spaces;
height = Number(prompt("Please enter a height.")); // prompts for height
something = height; //******place-holder, pick new variable name******
var counter, counter_2;
spaces = 0;
counter = 1;
row=0;
column=0;
while (something != 0) // continues until something = 0
{
document.write("<tr>"); // start row
while ((row > 0) && (column<row))
{
document.write("<td>" + " " + "</td>");
column++;
}
while (counter <= height) // continues until counter = height
{
document.write("<td>" + "*" + "</td>"); // adds "*"
counter++; // add 1 to counter
column++;
}
something--; // subtract 1 from "something"
counter=1; // reset counter to 1
height--;
column=0;
row++;
document.write("</tr>"); // end row
}
document.write("</table>");
推荐阅读
- python - Why does vaex change column names that contain a period?
- r - Subtracting two columns inside lists of data frames
- php - 从 Laravel http 请求运行节点脚本会导致 node::http2::Http2Session::OnStreamAllocImpl 错误
- xamarin - Xamarin iOS: Replace View Controller within the current Tab Bar item
- python - 如何使用 Unix 时间戳向我的 pandas 数据框添加年份和月份列?
- php - 当我将 Drupal 站点移动到网络主机时,所有链接都给出 404 Not Found
- python - 从字典列表中获取所有最小值
- sql - 在 Db2 (SQL/XML) 中使用 xmlquery 从 xml 中选择元素
- .net-core - 如何从 blazor .NET Core 3 项目生成报告?
- regex - 具有单个正则表达式模式的多个嵌套组