JS 部分常见循环、分支、嵌套练习
图形题思路:
1、确定图形一共几行,即为外层的循环次数
2、确定每行有几种元素,代表有几个内层循环
3、确定每种元素的个数,即为每个内层循环的次数
通常,找出每种元素个数,与行号的关系式,即为当前内层循环的最大值(从1开始循环)
利用循环嵌套实现以下图形:
【长方形】 【直角三角形】 【平行四边形】 【菱形】
**** * ***** *
**** ** ***** ***
**** *** ***** *****
**** **** ***** ***
**** ***** ***** *
长方形:
for (i=1;i<=5;i++) {
for (j=1;j<=4;j++) {
document.write("*");
}
document.write("<br />");
}
document.write("长方形"+"<br />");
三角形:
for (i=1;i<=5;i++) {
for (j=1;j<=i;j++) {
document.write("*");
}
document.write("<br />");
}
document.write("三角形"+"<br />");
平行四边形:
for (i=1;i<=5;i++) {
for (n=1;n<=i;n++) {
document.write(" ");
}
for (j=1;j<=5;j++) {
document.write("*");
}
document.write("<br />");
}
document.write("平行四边形"+"<br />");
菱形:
for (var i=1;i<=4;i++) {
//空格
for(var k=1;k<=4-i;k++){
document.write("<span style='display: inline-block;width: 7px;'></span>");
}
//*
for(var j=1;j<=2*i-1;j++){
document.write("*");
}
document.write("<br/>");
}
for (var i=1;i<=3;i++) {
//空格
for(var k=1;k<=i;k++){
document.write("<span style='display: inline-block;width: 7px;'></span>");
}
//*
for(var j=1;j<=7-2*i;j++){
document.write("*");
}
document.write("<br/>");
}
数字等边三角形 for(var i=1;i<=4;i++){
// 空格
for(var k=1;k<=4-i;k++){
document.write("<span style='display: inline-block;width: 8px;'></span>");
}
var n = 1;
// 递增
for(var j=1;j<=i;j++){
document.write(n);
n++;
}
n-=2;
// 递减
for(var m=1;m<=i-1;m++){
document.write(n);
n--;
}
// 回车
document.write("<br/>");
}
九九乘法表 document.write("<table width='700'>")
for(var i=1;i<=9;i++){
document.write("<tr>")
for(var j=1;j<=i;j++){
document.write("<td>"+i+"*"+j+"="+i*j+"</td>");
}
document.write("</tr>")
}
document.write("</table>") document.write("<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />");
结果样式:
输入一个数字判断是否是正整数,并将数字反向输出:
var num;
while (true){
num=prompt("");
// Number(num)>0 肯定为正数
// parseInt(num)==parseFloat(num) 肯定不是小数
if (Number(num)>0&&parseInt(num)==parseFloat(num)) {
break;
}
}
while (num>0){
var a = parseInt(num%10);
document.write(a);
num=parseInt(num/10);
}
判断是否为一个数字:Number(num)不为NaN,说明为数字
判断一个数字为正数:Number(num)>0
判断一个数字为整数:parseInt(num)==parseFloat(num)
判断闰年:
var year=prompt("输入年份");
document.write(year%4==0&&year%100!=0||year%400==0?"是闰年":"不是闰年");*/
输入某年某月某日,判断这一天是这一年的第几天?
方法一:
var year = parseInt(prompt("请输入年份"));
var month = parseInt(prompt("请输入月份"));
var day = parseInt(prompt("请输入日期")); /*假设都是平年,2月28天*/
var sum=0;
/*方法一*/
for(var i=1;i<month;i++){
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
sum+=31;
}else if(i==4||i==6||i==9||i==11){
sum+=30;
}else if(i==2){
sum+=28;
}
}
if((year%4==0&&year%100!=0||year%400==0)&&month>2){
sum+=(day+1);
}else{
sum+=day;
}
document.write("您输入的"+year+"-"+month+"-"+day+"为该年的第"+sum+"天");
方法二:
var year = parseInt(prompt("请输入年份"));
var month = parseInt(prompt("请输入月份"));
var day = parseInt(prompt("请输入日期")); /*假设都是平年,2月28天*/
var sum=0;
switch (month-1){
case 11: //每个case后没有break,可以实现天数的累加
sum+=30;
case 10:
sum+=31;
case 9:
sum+=30;
case 8:
sum+=31;
case 7:
sum+=31;
case 6:
sum+=30;
case 5:
sum+=31;
case 4:
sum+=30;
case 3:
sum+=31;
case 2:
sum+=28;
case 1:
sum+=31;
case 0:
sum+=0;
} if((year%4==0&&year%100!=0||year%400==0)&&month>2){
sum+=(day+1);
}else{
sum+=day;
} document.write("您输入的"+year+"-"+month+"-"+day+"为该年的第"+sum+"天");
JS 部分常见循环、分支、嵌套练习的更多相关文章
- JS中For循环中嵌套setTimeout()方法的执行顺序
在For循环中执行setTimeOut()方法的代码,执行顺序是怎样的呢? 代码如下 function time() { for(var i= 0;i<5;i++){ setTimeout(fu ...
- javascript基础入门之js中的结构分支与循环语句
javascript基础入门之js中的结构分支与循环语句 程序的结构①顺序结构:自上而下:②选择(分支)结构:多条路径,根据不同的条件,只执行其中一个:③循环结构:重复某些代码④配合特定的语句实现选择 ...
- JS中for循环嵌套
for 循环 for语句也是一种前测试循环语句,但它具有在 执行循环之前初始化变量 和 定义循环后要执行的代码的能力 for循环中专门提供了位置来放置循环的三个表达式 定义一个循环需要做实现这三步: ...
- for循环中嵌套setTimeout,执行顺序和结果该如何理解?
这两天在捣鼓作用域的问题,有的时候知识这个东西真的有点像是牵一发而动全身的感觉.在理解作用域的时候,又看到了一道经典的面试题和例子题. 那就是在for循环中嵌套setTimeout延时,想想之前面试的 ...
- js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存)
js闭包(函数内部嵌套一个匿名函数:这个匿名函数可将所在函数的局部变量常驻内存) 一.总结 1.闭包:就是在一个函数内部嵌套一个匿名函数,这个匿名函数可以访问这个函数的变量. 二.要点 闭包 闭包的相 ...
- 【2017-02-21】分支语句if...else...、分支嵌套、变量的作用域
语句是指程序命令,都是按照顺序执行的. 语句又分为: 顺序语句:从上到下按顺序执行,挨个执行一遍. 分支语句:选择性执行语句,有的可能会执行,有的可能不执行.满足条件执行. 循环语句: 一.分支语句 ...
- 原生JS—实现图片循环切换的两种方法
今天我们主要讲讲如何使用原生JS实现图片的循环切换的方法.多余的话我们就不多说了,我们一个一个开始讲吧. 1 原生JS实现图片循环切换 -- 方法一 在上栗子之前我们先简单介绍一下所用的一些知识点. ...
- 原生JS—实现图片循环切换及监测鼠标滚动切换图片
今天我们主要讲讲如何使用原生JS实现图片的循环切换的方法以及如何检测鼠标滚动循环切换图片.多余的话我们就不多说了,我们一个一个开始讲吧. 1 原生JS实现图片循环切换 -- 方法一 在上栗子之前我们 ...
- JS中常见算法问题
JS中常见算法问题 1. 阐述JS中的变量提升(声明提前) 答:将所有的变量提升当当前作用域的顶部,赋值留在原地.意味着我们可以在某个变量声明前就使用该变量. 虽然JS会进行变量提升,但并不会执行真正 ...
随机推荐
- Kubernetes 1.5安装
Kubernetes从1.3开始引入kubeadm来试图简化其复杂的安装.但kubeadm至今仍不稳定,而且我个人觉得kubeadm反而麻烦,还不如直接用脚本或者其他自动化工具来安装来的利索.关于ku ...
- 3396: [Usaco2009 Jan]Total flow 水流
3396: [Usaco2009 Jan]Total flow 水流 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 179 Solved: 73[Su ...
- 用一个jsp实现对数据库发访问
<%@ page language="java" import="java.util.*" pageEncoding="gb2312" ...
- Selenium自动化脚本开发总结
Selenium Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具. Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mo ...
- warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
struct test{int a=1111111; }test; vincentdeMacBook-Air:datasturte vincent$ g++ struct.cpp -o structp ...
- 首个写博客的Android任务
任务1 单击按钮图片选择器 使用TextView,RadioGroup,RadioButton完成. 设置单击按钮选择显示花朵. 首先设置了页面布局 <LinearLayout xmlns:an ...
- linux vi hjkl由来
很远原因来自历史 I was reading about vim the other day and found out why it used hjkl keys as arrow keys. Wh ...
- RPC漏洞
DCOM漏洞:利用这个漏洞攻击者只需发送特殊形式的清求到远程计算机上的135端口,轻则会造成拒绝服务攻击,严重的甚至可以让远程攻击者以本地管理员权限执行任何操作. 攻击过程:扫描也可用xscan+DC ...
- AE + GDAL实现影像按标准图幅分割(上)
最近有个项目,其中有个功能是要将遥感影像按标准图幅分割,一开始用AE的接口,慢的让人抓狂,就改用GDAL,速度提升很大.我主要通过http://blog.csdn.net/liminlu0314/学习 ...
- css2.1实现图片添加阴影效果
盒子里面放了img标签,盒子浮动后,盒子的背景图片(就是阴影图片)会应用图片的宽高. <!DOCTYPE html> <html lang="en"> &l ...