1.prompt():
prompt()可以弹出一个提示框,该提示框中有一个文本框,用户可以在文本框中输入一段内容。
prompt的返回值都是String类型。
注:非数值型字符串,转换为数值型后其类型是NaN。
var a = "abc";
a = Number(a);
console.log(isNaN(a)); //输出是true
<script type="text/javascript">
//先判断成绩是否在0-100之间,如果不在,则重新输入,直到输入的成绩在0-100之间
while(true)
{
var score = prompt("请输入您的成绩(0-100):");
if(score >= 0 && score <= 100)
{
break;
}
alert("请输入有效的成绩!");
}
if(score >= 90)
{
document.write("你很牛逼");
}else if (score >= 80)
{
document.write("你很厉害");
}else if (score >= 60)
{
document.write("还行吧及格了");
}else
{
document.write("学渣你好");
}
</script>
练习:从小到大输出用户输入的三个数的大小
<script type="text/javascript">
/*
* 用户输入三个数字,并从小到大输出
* prompt返回String类型的数据,需要先将其转换成数值型。
* 思路:先找到三个数中的最小数,然后找到中间数,最后按照从小到大的顺序输出。
*/
var num1 = +prompt("请输入第一个数字"); //对输入的元素进行数据类型转换
var num2 = +prompt("请输入第二个数字");
var num3 = +prompt("请输入第三个数字");
//先找到最小的数
if(num1 <= num2 && num1 <= num3) //说明num1最小
{
if(num2 <= num3) //说明num3最大
{
alert("从小到大的顺序为:"+num1+","+num2+","+num3);
}
else //说明num2最大
{
alert("从小到大的顺序为:"+num1+","+num3+","+num2);
}
}else if(num2 <= num1 && num2 <= num3) //说明num2最小
{
if(num1 <= num3) //说明num3最大
{
alert("从小到大的顺序为:"+num2+","+num1+","+num3);
}
else //说明num1最大
{
alert("从小到大的顺序为:"+num2+","+num3+","+num1);
}
}else //说明num3最小
{
if(num1 <= num2) //说明num2最大
{
alert("从小到大的顺序为:"+num3+","+num1+","+num2);
}
else //说明num1最大
{
alert("从小到大的顺序为:"+num3+","+num2+","+num1);
}
}
</script>
练习:用户输入成绩,大于60输出合格,小于60输出不合格。
<script type="text/javascript">
方法1:
/*
* 6x -- 9x 都输出“合格” 否者输出“不合格”
*/
var score = prompt("请输入您的成绩:");
switch( parseInt(score / 10) )
{
case 10:
case 9:
case 8:
case 7:
case 6:
alert("成绩合格");
break;
default:
alert("成绩不合格");
}
方法2:
var score = prompt("请输入您的成绩:");
switch(true)
{
case score >= 60:
alert("成绩合格");
break;
default:
alert("成绩不合格");
}
</script>
2. 在网页中实现换行
<script type="text/javascript">
/*
* 在网页中实现换行输出
*/
document.write(1+"<br/>"); // <br/> 在网页中换行
document.write(2+"<br/>"); // <br/> 在网页中换行
document.write(3+"<br/>"); // <br/> 在网页中换行
</script>
3. while 和 do...while
区别: while { } 先判断条件,满足再执行 ; do...while 先执行一次,再判断循环条件,满足再次执行。
while 练习: 假设投资的年利率是5%,求从1000块钱增长到5000块钱,需要多少年
<script type="text/javascript">
var money = 1000;
var year = 0;
while( money < 5000)
{
money *= 1.05;
year++;
}
document.write(year); //33
</script>
4. for循环
语法: for(初始化表达式;条件表达式;更新表达式)
{ 语句 }
执行顺序:先执行初始化表达式,对变量进行初始化,
然后执行条件表达式,判断是否执行循环,如果为true,则执行循环语句,如果为false,终止循环。
然后执行更新表达式,再执行条件表达式,如果满足,继续执行循环语句,然后再执行更新表达式...
for循环练习:
1.打印1-100之间的所有奇数之和
<script type="text/javascript">
var count = 0;
for(var i = 1 ; i <= 100 ; i ++)
{
if( i % 2 == 1)
{
count += i;
}
}
document.write(count); // 2500
</script>
2.打印1-100之间所有7的倍数的个数及其总和。
<script type="text/javascript">
var sum = 0, count = 0;
for(var i = 1 ; i <= 100 ; i ++)
{
if( i % 7 == 0)
{
count ++;
sum += i;
}
}
document.write("从1-100之间所有7的倍数的个数是:"+count+"<br/>"); //14
document.write("从1-100之间所有7的倍数的总和是:"+sum); //735
</script>
3. 水仙花数
水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身。打印所有的水仙花数。
如: 153 = 1^3 + 5^3 + 3^3。
<script type="text/javascript">
for(var i = 100 ; i <= 999 ; i++)
{
var baiwei = parseInt(i / 100);
var shiwei = parseInt((i / 10) % 10);
var gewei = i % 10;
if(baiwei*baiwei*baiwei + shiwei*shiwei*shiwei + gewei*gewei*gewei == i )
{
document.write(i + "<br/>");// 153,370,371,407
}
}
</script>
4.用户输入一个数字,判断该数是否是质数。
质数:只能被1和它本身整除的数,1不是质数也不是合数,质数必须是大于1的自然数。
<script type="text/javascript">
while(true)
{
var number = prompt("请输入一个大于1的整数:");
if( number <= 1 || isNaN(number))
{
alert("请重新输入");
}
else
{
break;
}
}
var flag = true; //设置变量flag保存当前数的状态,true默认为质数
for(var i = 2 ; i < number ; i ++)
{
if ( number % i == 0)
{
flag = false;
}
}
if(flag)
{
document.write("是质数");
}
else{
document.write("不是质数");
}
</script>
5. for循环嵌套
<script type="text/javascript">
for(var i = 0 ; i < 5 ; i ++)
{
for(var j = 0 ; j < i + 1 ; j ++)
{
document.write("* ");
}
document.write("<br/>");
}
for(var a = 0 ; a < 5 ; a ++)
{
for(var b = 5 ; b > a ; b --)
{
document.write("* ");
}
document.write("<br/>");
}
</script>
*
* *
* * *
* * * *
* * * * *
* * * * *
* * * *
* * *
* *
*