- 浏览: 93496 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (91)
- 测试 (0)
- 其他 (0)
- cms (3)
- 配置apache虚拟主机 (1)
- 搜索引擎seo (3)
- php (24)
- html (6)
- thinkphp (3)
- jquery (10)
- ajax (1)
- css (2)
- javascript (4)
- it (5)
- mysql数据库 (10)
- dedecms (2)
- smarty (2)
- powerdesigner教程 (1)
- Query选项卡 (1)
- ckeditor (1)
- http (1)
- 求助 (1)
- 免费域名 (1)
- 网站挂马检测 (1)
- 软件软件软件 (1)
- WordPress主题制作 (1)
- zencart.me (9)
- zencart购物车修改调用显示购物车图片 (1)
- 修改边栏购物车模版 (1)
- html5 (2)
- seo (5)
- zen cart商品无限分级类别递归 (1)
- zencart教程 (2)
- 在浏览器 favicon 上显示进度 很帅 很酷 (1)
- html5实现太阳系星球演示效果 (1)
- 各地程序员的特征,请对号入座 (1)
- magento的系统需求 (1)
- ubuntu (1)
- 免费空间 (0)
- 哪里有免费发布广告外链 (0)
- 熊猫烧香源代码 (1)
- mysql (0)
- opencart (1)
最新评论
乘法口诀表
header("Content-type:text/html;Charset=utf-8");
for($i=1;$i<10;$i++){
for($k=1;$k<=$i;$k++){
echo " $k * $i =".$k*$i." ";
}echo "<br/>";
}
水仙花数
for($i=100;$i<1000;$i++){
$a=intval($i/100);
$b=intval($i/10);
$c=$i;
if(pow($a,3)+pow($b,3)+pow($c,3)==$i){
echo $i." ";
}
}
a++ ++a 的区别
++$i 没有什么好说的,就是无论什么情况,都先把$i加1 ,然后再干别的
主要说说 $i++;
所有人都知道,$i++ 是先取值,后++,但是大多数人都有一个误解,就是认为这条语句执行完毕之后,$i再加1。其实真实的情况是:变量被加1的时刻发生于$i被++之后的下一次取值
为了理解这句话,我们看几个例子:
1、
1: $i = 2;
2: echo $i++ + $i;
复制代码
结果是5
看第二行,运算中要先得到运算符两边的值之后再运算,通过加1的时刻发生于 $++ 之后的下一次取值可以得知:
a、首先计算运算符左边被加数的值,由于后++的法则是先抛值再加1,所以这时从 $i 取到的值为 2,同时把发生在 $i 身上的后++操作记录下来。这时运算符左边为 2。注意,这时 $i 还未真正的+1
b、接着取运算符右边的加数。他取 $i 的值的时候发现 $i 曾经++过,于是把 $i 加 1 的结果赋给 $i 的同时,返回被+1之后的$i,于是从第二个$i取得的值是被加1之后的值,3。这时运算符右边为3。
c、2+3=5
2、
1: $i = 2;
2: echo $i + $i++;
复制代码
还是第二行。同样要先计算两面,于是便有:
a、首先计算左边,取得$i的值为 2,这个没什么好说的。
b、计算右边,由于后++的特性是先抛值,所以加号运算符右边得到的值也是2
c、2+2,结果是4
最后看一个复杂一点的:
$a=5;
$a+=++$a+$a++;
复制代码
不要被a+=b迷惑,通过 a+=b === a=a+b 转换一下看得更清楚:
$a = ++$a + $a++ +$a;
优先级是这样的:先计算自增减表达式,再根据乘除加减这个基本顺序计算整个表达式
这样我们模拟一下电脑:
a、++$a,直接将$a+1赋值给$a,之后抛出 $a 的值,++$a 这个表达式的位置当前值就成为了 6,现在$a也是6
b、$a++。因为后++是先抛值,所以直接抛 $a 的值 6。这时 $a++ 这个位置的当前值是6。
c、$a。取$a的值的时候发现他曾经有过被++的操作,于是把 $a 加上1赋值给$a,同时抛出值7。这时 $a这个位置的当前值就变成了7
d、$a = 6+6+7,结果是19。
只要记住:当变量$i发生后++的情况时,并不进行+1运算,而是在被++之后仅仅记录++操作,下一次取$i值的时候再+1返回。
一个比较有意思的例子是hightman发出来的:
$a = 1;
$b = &$a;
$b = $a++;
echo "a: $a \nb: $b";
复制代码
你将会发现 $a 和 $b 都是 1!按照上面所说,应该是2才对啊!怎么解释呢?其实解释很简单,就是++操作丢了。听起来不可思议,其实不难理解。这里面跟++已经没有什么关系了,完全是'引用'这个东西在指使。
关于引用的话题,请参加我的另一篇帖子[关于引用的解释]:
http://bbs.chinaunix.net/viewthr ... &extra=page=1
刚才在论坛看到的..题目是这样的:
View Code
1 2
$i = 1; echo "i=".(++$i)+(++$i)+(++$i);
大家可以去运行一下 结果会是7!
这让我们很纳闷 为什么是7呢? 无论如何都出不来7啊..
下面我们改一下这道题目
View Code
1 2
$i = 1; echo (++$i)+(++$i)+(++$i);
这时候在让你回答.我觉得你是可以回答出正确答案的.
没错. 这个答案是9..我想这个我就不必解释了. 2+3+4 所以等于9
那么回到最上面的题.为什么会是7呢?
其实蒙蔽就蒙蔽在那么多自增运算符了. 我们可以去查一下手册运算符的优先级可以看到.
+ – .属于一个优先级 .也就是说PHP计算的时候需要从左向右计算.
所以PHP需要先计算 “i=”.(++$i) 这时候答案是会是 “i=2″ 注意这是字符串.
在PHP中”.“与”+“的区别是相当分明的.”.“就是字符串运算.”+“就是数字运算.
这时候的运算便成了”i=2″+(++$i)+(++$i)了 我们看到 运算中没有了点.所以PHP会去实行数字运算.
但是第一个是字符串.所以PHP会把”i=2″这个字符串强制转换成数字.由于这个字符串的第一个字符不是数字.所以强制转换后的记过就是0。如果这个字符串是”2i=2″.那么转换后就变成2了.
这时候0+3+4 所以就等于7了.
好了 总结下 这道题需要我们注意2点.
“.“与”+“的优先级的问题
字符串强制转换成数字的问题
header("Content-type:text/html;Charset=utf-8");
for($i=1;$i<10;$i++){
for($k=1;$k<=$i;$k++){
echo " $k * $i =".$k*$i." ";
}echo "<br/>";
}
水仙花数
for($i=100;$i<1000;$i++){
$a=intval($i/100);
$b=intval($i/10);
$c=$i;
if(pow($a,3)+pow($b,3)+pow($c,3)==$i){
echo $i." ";
}
}
a++ ++a 的区别
++$i 没有什么好说的,就是无论什么情况,都先把$i加1 ,然后再干别的
主要说说 $i++;
所有人都知道,$i++ 是先取值,后++,但是大多数人都有一个误解,就是认为这条语句执行完毕之后,$i再加1。其实真实的情况是:变量被加1的时刻发生于$i被++之后的下一次取值
为了理解这句话,我们看几个例子:
1、
1: $i = 2;
2: echo $i++ + $i;
复制代码
结果是5
看第二行,运算中要先得到运算符两边的值之后再运算,通过加1的时刻发生于 $++ 之后的下一次取值可以得知:
a、首先计算运算符左边被加数的值,由于后++的法则是先抛值再加1,所以这时从 $i 取到的值为 2,同时把发生在 $i 身上的后++操作记录下来。这时运算符左边为 2。注意,这时 $i 还未真正的+1
b、接着取运算符右边的加数。他取 $i 的值的时候发现 $i 曾经++过,于是把 $i 加 1 的结果赋给 $i 的同时,返回被+1之后的$i,于是从第二个$i取得的值是被加1之后的值,3。这时运算符右边为3。
c、2+3=5
2、
1: $i = 2;
2: echo $i + $i++;
复制代码
还是第二行。同样要先计算两面,于是便有:
a、首先计算左边,取得$i的值为 2,这个没什么好说的。
b、计算右边,由于后++的特性是先抛值,所以加号运算符右边得到的值也是2
c、2+2,结果是4
最后看一个复杂一点的:
$a=5;
$a+=++$a+$a++;
复制代码
不要被a+=b迷惑,通过 a+=b === a=a+b 转换一下看得更清楚:
$a = ++$a + $a++ +$a;
优先级是这样的:先计算自增减表达式,再根据乘除加减这个基本顺序计算整个表达式
这样我们模拟一下电脑:
a、++$a,直接将$a+1赋值给$a,之后抛出 $a 的值,++$a 这个表达式的位置当前值就成为了 6,现在$a也是6
b、$a++。因为后++是先抛值,所以直接抛 $a 的值 6。这时 $a++ 这个位置的当前值是6。
c、$a。取$a的值的时候发现他曾经有过被++的操作,于是把 $a 加上1赋值给$a,同时抛出值7。这时 $a这个位置的当前值就变成了7
d、$a = 6+6+7,结果是19。
只要记住:当变量$i发生后++的情况时,并不进行+1运算,而是在被++之后仅仅记录++操作,下一次取$i值的时候再+1返回。
一个比较有意思的例子是hightman发出来的:
$a = 1;
$b = &$a;
$b = $a++;
echo "a: $a \nb: $b";
复制代码
你将会发现 $a 和 $b 都是 1!按照上面所说,应该是2才对啊!怎么解释呢?其实解释很简单,就是++操作丢了。听起来不可思议,其实不难理解。这里面跟++已经没有什么关系了,完全是'引用'这个东西在指使。
关于引用的话题,请参加我的另一篇帖子[关于引用的解释]:
http://bbs.chinaunix.net/viewthr ... &extra=page=1
刚才在论坛看到的..题目是这样的:
View Code
1 2
$i = 1; echo "i=".(++$i)+(++$i)+(++$i);
大家可以去运行一下 结果会是7!
这让我们很纳闷 为什么是7呢? 无论如何都出不来7啊..
下面我们改一下这道题目
View Code
1 2
$i = 1; echo (++$i)+(++$i)+(++$i);
这时候在让你回答.我觉得你是可以回答出正确答案的.
没错. 这个答案是9..我想这个我就不必解释了. 2+3+4 所以等于9
那么回到最上面的题.为什么会是7呢?
其实蒙蔽就蒙蔽在那么多自增运算符了. 我们可以去查一下手册运算符的优先级可以看到.
+ – .属于一个优先级 .也就是说PHP计算的时候需要从左向右计算.
所以PHP需要先计算 “i=”.(++$i) 这时候答案是会是 “i=2″ 注意这是字符串.
在PHP中”.“与”+“的区别是相当分明的.”.“就是字符串运算.”+“就是数字运算.
这时候的运算便成了”i=2″+(++$i)+(++$i)了 我们看到 运算中没有了点.所以PHP会去实行数字运算.
但是第一个是字符串.所以PHP会把”i=2″这个字符串强制转换成数字.由于这个字符串的第一个字符不是数字.所以强制转换后的记过就是0。如果这个字符串是”2i=2″.那么转换后就变成2了.
这时候0+3+4 所以就等于7了.
好了 总结下 这道题需要我们注意2点.
“.“与”+“的优先级的问题
字符串强制转换成数字的问题
发表评论
-
PHP非诚勿扰-我不是“拍黄片”的!
2013-03-03 14:56 1277非诚勿扰 PHP程序员一场全部灭灯,可怜的,我是PHP程序员 ... -
php输出正立金字塔
2013-01-24 21:05 972php输出正立金字塔 <?php $a = ... -
php永远不懂的面试题目1算出两个文件的相对路径
2012-08-22 10:45 764新浪有个面试题目:写一个php函数算出两个文件的相对路径 ? ... -
http伪静态 htaccess 配置文件详解
2012-08-16 13:57 986.htaccess 配置文件详解 .htaccess文件设置基 ... -
几行 PHP 代码就可以禁用凡人的 HTTP 缓存
2012-08-16 13:53 716header("Content-Type: appl ... -
php ckeditor 使用配置教程
2012-08-16 11:24 1111<script type="text/java ... -
like语句中文有问题 mysql like语句 like的用法 解决方法
2012-08-14 11:17 3594在做MySQL的Like查询是发现中文搜索总是有问题 方法 ... -
php正则表达式常用正则电子邮件手机qq列子
2012-08-03 17:43 1260class Verify{ 003 /** 004 * ... -
mysql_fetch_assoc用法
2012-08-03 11:04 1482$query="SELECT `id` FROM ` ... -
smarty二维数组读取
2012-08-02 10:38 913{foreach item=foo from=$video k ... -
模拟nokie手机访问百度
2012-07-28 11:29 674$tra=new tra(); $my_header2=arr ... -
C:WINDOWS empphp18B.tmp
2012-07-27 10:07 891图片上传 出现 C:WINDOWS empphp18B. ... -
Latin1是什么编码是ISO-8859-1的别名
2012-07-21 11:26 1568atin1 Latin1是ISO-8859-1的别名,有些 ... -
smarty定界符与js冲突的问题
2012-07-20 16:27 1803smarty定界符与js冲突的问题 2010-01-29 11 ... -
php对象错误Call to a member function on a non-object
2012-07-19 17:13 1854php对象错误Call to a member functio ... -
php邮件发送已经测试ok
2012-07-18 10:54 797<?php class smtp { /* Pub ... -
php防盗链 htaccess
2012-07-18 23:09 710下面开始讲解:比如你的图片都在img目录下,那就在该目录下放一 ... -
php$_SERVER[’PHP_SELF’], $_SERVER['REQUEST_URI'], and $_SERVER[’SCRIPT_NAME’]区别
2012-07-18 23:09 1006$_SERVER[PHP_SELF], $_SERVER[SC ... -
php global 与 GLOBAL
2012-07-18 23:28 1151php global 与 GLOBAL 标签: 杂谈 须申 ... -
thinkphp ajax效果 自写简单
2012-07-15 09:52 1668js面页 $(document).ready(function ...
相关推荐
根据给定的信息,本文将对“21位水仙花数”的相关知识点进行详细解析。 ### 一、水仙花数的基本概念 水仙花数(Narcissistic number)是指一个n位数,它的每个位上的数字的n次幂之和等于它本身的一个数。例如,153...
html+css九九乘法表 html+css九九乘法表 html+css九九乘法表 html+css九九乘法表 html+css九九乘法表 html+css九九乘法表 html+css九九乘法表 html+css九九乘法表 html+css九九乘法表 html+css九九乘法表 html+css...
在Java编程语言中,"打印九九乘法表"是一个常见的初学者练习,它涉及到控制台输出和循环结构。下面我们将详细讨论如何使用Java来实现这个功能,以及在这个过程中会遇到的一些关键知识点。 首先,九九乘法表,也称为...
在编程领域,水仙花数(也称为 Narcissistic Number)是一个三位数,其每一位数字的立方和等于这个数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在C#中,实现寻找水仙花数的算法是一项基础练习,它...
### C语言打印乘法表知识点解析 在计算机编程学习中,C语言因其高效性和灵活性而被广泛使用。本文将深入探讨如何使用C语言编写一个简单的程序来打印乘法表,并通过对给定代码片段的分析来解释其中涉及的关键概念和...
九九乘法表,又称乘法口诀表,是数学教育中用于学习乘法基础知识的工具,包含1到9的所有整数的乘积。在C语言中,我们可以利用循环结构和条件判断来实现乘法表的输出。 1. **基本思路**: - 使用两层嵌套循环,外层...
水仙花数python 1.python分支 1.1 if 单分支判断 1.2 if 双分支判断 1.3 if 嵌套 1.4 if 的多分支判断 2.python循环 2.1 while循环 2.2 for循环 3.python分支 循环案例使用 3.1 字符串的反转 3.2 打印1-100之间的...
这将会生成一个可执行文件`九九乘法表`,运行它将在控制台打印出九九乘法表。 总的来说,通过这个简单的C++程序,我们可以学习到基本的循环控制、条件判断以及控制台输出等核心概念。对于初学者来说,这是一个很好...
九九乘法表,也被称为乘法口诀表,是中国教育体系中常见的基础数学工具,用于教授和记忆乘法运算。在编程领域,创建九九乘法表是一种经典的练习,可以展示基本的循环和控制结构的运用。在这个案例中,我们将讨论如何...
这个主题关于“Javascript打印乘法表”是JavaScript初学者常见的编程练习,它旨在帮助理解控制流、循环和字符串操作等基本概念。 乘法表是数学教育中的基础工具,用于展示1到10之间任意两个数字的乘积。使用...
描述中提到的是一个具体的PHP代码示例,用于打印出九九乘法表。在PHP中,这通常涉及到使用嵌套循环,如for或while循环,外层循环遍历乘法表的行数,内层循环遍历列数。通过这种方式,我们可以依次计算并输出每个乘积...
a++)`这一段用于在每行开始时打印空格,使得乘法表的每一行都居中对齐。 3. **乘法运算**:乘法运算通过`raw*cal`进行,将结果与乘号和乘数一起打印出来。`System.out.print("\t"+raw+"*"+cal+"="+raw*cal)`这行...
该部分内容包括两个C#控制台应用程序的代码,分别用于输出九九乘法表和水仙花数。 输出九九乘法表 第一段代码用于输出九九乘法表,使用了C#编程语言的基础知识,如循环语句、控制台输出等。代码中使用了两个循环...
### Java程序编写打印九九乘法表 #### 知识点概述 本篇文章将详细介绍如何使用Java编程语言来实现九九乘法表的输出,并将其保存为文本文件(txt)格式。我们将从理解基本的Java语法入手,逐步深入到具体代码的实现...
在这个“用servlet写的九九乘法表”项目中,我们可以深入理解Servlet的基本工作原理以及如何将其应用于简单的Web应用程序。 首先,我们需要了解Servlet的生命周期。Servlet在服务器启动时并不立即加载,而是在接收...
根据给定文件的信息,本文将详细介绍如何使用JSP与JavaScript来实现九九乘法表的打印功能,并分别探讨这两种方法的具体实现步骤。 ### JSP 表达式方式 #### 实现原理 在JSP(JavaServer Pages)中,可以通过内嵌...
2. **条件语句**:在输出乘法表的过程中,可能需要使用条件语句(如`if`)来决定是否在每行末尾打印分隔符(如逗号或者换行符),以保持输出的整洁。 3. **格式化输出**:C++提供了`std::cout`进行标准输出,可以...
### Java编写乘法表知识点详解 #### 一、程序概述 在本篇文章中,我们将深入探讨如何使用Java语言编写一个简单但功能完善的乘法表程序。该程序能够生成1到9的乘法表,并且输出格式整齐美观。通过这个例子,我们...
本文介绍了九九乘法表的基本概念以及如何使用C++编写一个简单的程序来打印九九乘法表。通过理解这个示例程序,不仅可以掌握基本的C++语法和控制结构,还可以加深对九九乘法表的理解和应用。这对于初学者来说是非常...
水仙花数是指一个三位数,它的每一位数的立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。程序通过遍历100到999之间的所有数,分别计算百位、十位和个位的立方和,如果相等,则输出该数。 ...