前端基础——忽略的问题

上周老师布置的作业里面有一个题:输入1.2.3.4四个数,一共能组成多少互不重复的三位数?

      for(var i=1;i<=4;i++){
				for (var j=1;j<=4;j++) {
					for (var n=1;n<=4;n++) {
						if(i!=j&&j!=n&&n!=i){
						document.write(j+i+n+'<br />');
										
						}
					}	
				}		
			}

这是我写的代码,我反复验证都觉得没错,可是输出后就不是我想要的结果,我很纳闷。
最后询问了同学,他给我说我输出错了,‘+’除了是连接符还是个加号,我猛然醒悟。
i j n 都是数字类型,直接连在一起它们肯定相加了呀,我居然忘了这茬,小尴尬!

正确写法有好几种:

1.

可以用笨办法,一个一个输出。

for(var i=1;i<=4;i++){
				for (var j=1;j<=4;j++) {
					for (var n=1;n<=4;n++) {
						if(i!=j&&j!=n&&n!=i){		
						document.write(j);
						document.write(i);				
						document.write(n+'<br />');				
							
						}
					}	
				}		
			}

2.

for(var i=1;i<=4;i++){
				for (var j=1;j<=4;j++) {
					for (var n=1;n<=4;n++) {
						if(i!=j&&j!=n&&n!=i){
							var sum =i*100+j*10+n;    // 定义一个sum变量
							document.write(sum+'<br />');
										}
					}	
				}		
			}

3.

for(var i=1;i<=4;i++){
				for (var j=1;j<=4;j++) {
					for (var n=1;n<=4;n++) {
						if(i!=j&&j!=n&&n!=i){
						document.write(j*100+i*10+n+'<br />');	
								}
					}	
				}		
			}

4.

也可以把它转换成字符串。

for(var i=1;i<=4;i++){
				for (var j=1;j<=4;j++) {
					for (var n=1;n<=4;n++) {
						if(i!=j&&j!=n&&n!=i){
						document.write('  '+j+i+n+'<br />');			
						}
					}	
				}		
			}

虽然它们三个都是数字类型,但是 string类型+number类型 就是 string类型。用代码解释一下。

var a = 1;
    c = 5;
    b = '我是字符串';
		document.write(typeof(a)+'<br />');    // 返回number
		document.write(typeof(c)+'<br />');     // 返回number
		document.write(typeof(b)+'<br />');    // 返回string
		document.write(typeof(a+b+c)+'<br />');   // 返回string

前端基础新手可能会忽略的问题。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值