Javascript-循环输出菱形,并可菱形自定义大小
var Cen = 6;//定义菱形中部为第几行(起始值为0)
//for循环输出菱形
document.write("<button onclick='xh()'>点我for循环</button>");//在HTML里输出一个按钮,点击后执行输出菱形的操作
document.write("<p id='xunhuan'></p>");//在HTML里输出一个段落p来容纳菱形
function xh() {
var kong = "";
var x = 0;//控制margin的数值增加减少的值
for (i = 0 ; i <= Cen * 2 ; i++) {
if (i == 0 || i == Cen * 2) {
kong += "<p style='margin-left:" + (Cen * 20 + 5) + "px'>8</p>";
};
if (i != 0 && i <= Cen) {
x += 20
kong += "<p style='margin-left:" + (Cen * 20 - x) + "px'> <span style='margin-right:" + (2 * x) + "px'>8</span> <span>8</span> </p>";
};
console.log(x);
if (i != Cen * 2 && i > Cen) {
x -= 20
kong += "<p style='margin-left:" + (Cen * 20 - x) + "px'> <span style='margin-right:" + (2 * x) + "px'>8</span> <span>8</span> </p>";
};
};
document.getElementById("xunhuan").innerHTML = kong;
};
//while循环输出菱形
document.write("<button onclick='xh2()'>点我while循环</button>");
document.write("<p id='xunhuan2'></p>");
function xh2() {
var kong = "";
var i = 0, x = 0;
while (i <= Cen * 2) {
if (i == 0 || i == Cen * 2) {
kong += "<p style='margin-left:" +( Cen * 20 + 5) + "px'>8</p>";
};
if (i != 0 && i <= Cen) {
x += 20;
kong += "<p style='margin-left:" + (Cen * 20 - x) + "px'> <span style='margin-right:" + (2 * x) + "px'>8</span> <span>8</span> </p>";
};
if (i != Cen * 2 && i > Cen) {
x -= 20;
kong += "<p style='margin-left:" + (Cen * 20 - x) + "px'> <span style='margin-right:" + (2 * x) + "px'>8</span> <span>8</span> </p>";
};
i++
};
document.getElementById("xunhuan2").innerHTML = kong;
};
逻辑分析:
1、我们用html建立一个中部处于第三行时的小的菱形,来分析它的构成和规律

2. (1)输出段落,菱形中部=3,段落p=5,因此我们首先用for||while循环输出5个段落;
(2)第一个p和最后一个p为菱形的顶点,仅需要在<p>里输入一个8即可,因此首先我们做一个判断,让其先输入两个顶点;
(3)中部为菱形的两条边,其中菱形为对称图图形,因此我们发现其和分为两个部分需递增和递减其margin-left和两条边相隔的margin-right就可以实现了,因此我们做了两个判断;
(4)最后我们来发现这个菱形的中部其实就是他对称分隔的两个判断的值,而最后一个顶点就是他输出的总的段落值,因此我们来根据这个中部值去定义每一个判断值
(5)最后我们来分析他的margin-left和两条边相隔的margin-right的规律,发现除了一头一尾一样,上面和下面出现规律递增递减,因此我们这里定义一个x=0
,通过其递增递减来实现菱形边距离的变化。
综上所述,步骤就几个:
html里输入一个菱形,分析他的结构,找出规律
判断两个顶点的位置和
判断中部和中部以上的边的位置
判断中部以上的边的位置
最后根据这个死的菱形去分析如何变成中部可以活动的菱形,分析其中不值与其的关联
Javascript-循环输出菱形,并可菱形自定义大小的更多相关文章
- JavaScript学习笔记-循环输出菱形,并可菱形自定义大小
var Cen = 6;//定义菱形中部为第几行(起始值为0) //for循环输出菱形 document.write("<button onclick='xh()'>点我for循 ...
- 09-使用for循环输出空心菱形(循环)
/** * 使用for循环输出空心菱形 * */ public class Test7 { public static void main(String[] args) { for (int i = ...
- for循环输出空心菱形的形状【java】
使用for循环语句输出以下“空心菱形”效果: * * * * * * * * * * * * * * * * 建议优先参考笔者的另一篇文章:<for循环输出菱形的形状[java]> 代码: ...
- javascript循环遍历数组输出key value
javascript循环遍历数组输出key value用$.each方法肯定不行的 所以采用如下方法<pre> markers = []; markers[2]=3; markers[3] ...
- Javascript打印金字塔,倒立金字塔,空心金字塔,菱形,空心菱形等
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 面试题-一个for循环输出一个棱形
用一个for循环输出以下棱形 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...
- JavaScript循环之for/in循环
今天学到了JavaScript的语句篇.同其他常见编程语言如C.Java等一样,JavaScript中的语句包含:①表达式语句②复合语句和空语句③声明语句④条件语句⑤循环语句⑥跳转语句,当然JavaS ...
- JavaScript循环语句-6---for语句,while语句的应用逻辑
JavaScript循环语句 学习目标 1.掌握for语句的语法结构 2.掌握for语句的应用逻辑 for语句 语法: For(语句1:语句2:语句3){ 被执行的代码块: } 语句1:在循环(代码块 ...
- java基础61 JavaScript循环语句之while、do...while、for及for...in循环(网页知识)
本文知识点(目录): 1.while循环语句 2.do...while循环语句 3.for循环语句 4.for...in循环语句 5.附录1(with语句) 6.附录2( ...
随机推荐
- Spark如何读写hive
原文引自:http://blog.csdn.net/zongzhiyuan/article/details/78076842 hive数据表建立可以在hive上建立,或者使用hiveContext.s ...
- POJ1160 Post Office-四边形不等式优化DP
方程 $\Large f(i,j)=min(f(i-1,k)+w(k+1,j))$ 其中$w(i,j)$表示在$[i,j]$的村庄都去一个邮局的最小距离和 证明w满足四边形不等式 设$w_k(i,j) ...
- 容斥原理——hdu3208
和hdu2204有点像 这题要特别注意精度问题,如pow的精度需要自己搞一下,然后最大的longlong可以设为1<<31 /* 只要求[1,n]范围内的sum即可 那么先枚举幂次k[1, ...
- 深入浅出 Java Concurrency (35): 线程池 part 8 线程池的实现及原理 (3)[转]
线程池任务执行结果 这一节来探讨下线程池中任务执行的结果以及如何阻塞线程.取消任务等等. 1 package info.imxylz.study.concurrency.future;2 3 publ ...
- System.Web.Mvc.HttpUnauthorizedResult.cs
ylbtech-System.Web.Mvc.HttpUnauthorizedResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neut ...
- iOS之UIButton的normal和selected状态切换
1.问题? 改变播放器按钮状态,发现从selected切回到normal状态时候,中间会切换normal-selected-normal的图片? 2.原因…… normal-->selected ...
- [原创]关于时间格式的坑(kk:mm:ss、HH:mm:ss与hh:mm:ss)
笔者在项目中使用 kk:mm:ss表示24小时制,却发现与所想的不同,特记此坑,提醒众人: kk:mm:ss 24小时制,时间为1:00:00-24:59:59 HH:mm:ss 24小时制,时间 ...
- PostgreSQL的基础数据类型分析记录-转
src:http://www.codeweblog.com/postgresql%E7%9A%84%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E ...
- Spark运行架构详解
原文引自:http://www.cnblogs.com/shishanyuan/p/4721326.html 1. Spark运行架构 1.1 术语定义 lApplication:Spark Appl ...
- 廖雪峰Java11多线程编程-1线程的概念-2创建新线程
Java语言内置多线程支持: 一个Java程序实际上是一个JVM进程 JVM用一个主线程来执行main()方法 在main()方法中又可以启动多个线程 1.创建新线程 1.1 方法一:使用Thread ...