初学者首先要学会的是用编程的思维去思考问题,换而言之就是把问题抽象成 if-else、for、while-do 等等一系列流程,在掌握这一步骤之后才要考虑的是优化这个流程。
站在用户的角度思考问题,与客户深入沟通,找到安阳网站设计与安阳网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟主机、企业邮箱。业务覆盖安阳地区。
所以别嫌代码笨,先学会实现需求才是要考虑的。
题主的代码显然是不符合需求的。从需求上来看,需要考虑1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月闰年29天、平年28天。题主的代码 totalMonth % 2 == 0 计算的是是否为偶数月,仅此一个判断显然跟需求不符。
题主觉得代码笨是正常的,你的老师出这道题显然只是为了考察你们对循环和条件分支语句的理解。如果不用循环来做的话反而非常简单:
var year = +prompt("Year:"),
month = +prompt("Month:"),
day = +prompt("Day:");
var date = new Date(year, month - 1, day);
var firstDate = new Date(year, 0, 1); // 取得该年的1月1日
var dayOfYear = (date.getTime() - firstDate.getTime()) / (24*3600*1000) + 1; // 两者差值是相差的毫秒数,除以一天总计的毫秒数,即相差的天数
alert(Math.ceil(dayOfYear));
1while;
var num = 1;//1、声明循环变量
while (num=10){//2、判断循环条件;
document.write(num+"br /");//3、执行循环体操作;
num++;//4、更新循环变量;
}
while循环()中的表达式,运算结果可以是各种类型,但是最终都会转为真假,转换规则如下。
①Boolean:true为真,false为假;
②String:空字符串为假,所有非空字符串为真;
③Number:0为假,一切非0数字为真;
④null/Undefined/NaN:全为假;
⑤Object:全为真。
2
do-while循环
while循环特点:先判断后执行;
do-while循环特点:先执行再判断,即使初始条件不成立,do-while循环至少执行一次;
var num = 10;
do{
document.write(num+"br /");//10 9 8 7 6 5 4 3 2 1 0
num--;
}while(num=0);
document.write(num);//-1
3,for循环
for (var num =1; num=10; num++) {
document.write(num+" br /"); //1 2 3 4 5 6 7 8 9 10 }
4
for-in循环
var arr = ['a', 'b', 'c', 'd']; for (let a in arr) {
console.log(a); // 0 1 2 3 }
for (let a of arr) {
console.log(a); // a b c d
}
JQ循环有$.each和$.map('div').each(function (i){ i就是索引值 this 表示获取遍历每一个dom对象});
// 1 for循环
for (i=1;i=100;i++){ alert (i)}
//2 while循环
var i=1
while (i=100){
alert(i);
i++;
}
//3 do while 循环
var i = 1;
do{
alert(i
i++;
}while(i = 100);
//for in 和 forEach 用于数组的循环遍历
//4 for in
var arr1=[1,2,3,4,5,6,...99,100] ;
for (i in arr1){
alert (i);
}
//5 foreach
var arr1=[1,2,3,4,5,6,...99,100] ;
arr1.forEach(function(i){ alert(i)});