▼if结构合多重if结构
▼Scanner对象练习
▼if结构合多重if结构
在java中
if(conditon1){
}else if(conditon2){
}
但在有些语言中,elseif是写在一起的.
▼Scanner对象练习
Scanner sc = new Scanner(System.in);
如果接受串,String s=sc.next();
如果接受整数,int n=sc.nextInt();
如果串需要转换大写格式,则s.toUpperCase();
关闭sc对象,sc.close();
注意sc不能只能接受整型家族和String.
▼求平方和
n的平方 为 Math.pow(n,2);
▼获取随机数
Math.random();随机数范围为 0.0 =< Math.random < 1.0,即[0,1)
输出示例 0.5444085967267008
Math.random()*10的范围 [0,10)
Math.random()*10+1的范围 [1,11),不包含11,但包含10
Math.random()*100的范围 [0,100)
▼局部变量
局部变量的作用域只局限于定义的它的大括号内.
for(int n=1;n<=5;n++){}
对于for循环,n只局限于for的大括号内.作用类似c函数形参.for循环和while本质是一样的,while(true)就类似传参.
推测:for的语法形式,类似方法 int n=1;语句类似形参传入,形参只能在方法内调用,不能在方法外.
▼循环中局部变量每次循环完销毁
public class Circle4_7 {
public static void main(String[] args) {
for(int i=100;i<=300;i++) {
int b=i/100;
int s=i/10%10;
int g=i%10;
int p=b+s+g;
int m=b*s*g;
if(p==12 && m==42) {
System.out.println(i);
}
}
}
}
这不报错,推测:
每次循环 类似于一次函数调用,调用完销毁数据,这样下一次循环才能重新定义;
▼循环结构的特性
循环结构是结构,与方法有区别,但共性还是有的.分解开来,
1,循环结构的括号里相当于形参,形参作用域是明确的;
2,循环类似于c多次独立调用本身,独立,作用域随着单独一次调用结束而结束销毁;这也印证了有些语言存在函数静态变量,可以在多次循环之间累加;
▼上下级作用域覆盖顺序严格
java中函数内部变量不能覆盖父级变量,更严格.
外部定义b,在for中b是可以访问的,这时在for中重新定义b,则报错;有些语言是可以覆盖的,java不可用;
int b;
for(int i=100;i<=300;i++) {
int b=i/100;
int s=i/10%10;
int g=i%10;
int p=b+s+g;
int m=b*s*g;
if(p==12 && m==42) {
System.out.println(i);
}
}
▼不一样的编码规范
在循环体重定义并初始化更少代码,看起来也更直观.但每次int b=i/100;是不必重新定义,只需要重新赋值即可,可以把定义部分挪到上面外部[这样就从循环中省去每次定义,仅每次赋值]:
int b;
for(int i=100;i<=300;i++) {
b=i/100;
▼3种循环应用场景对比
for循环适用于循环次数固定的场景;
while循环适用于不知道循环次数,只知道循环条件的场景;
do-while循环同上,可以确定循环必须执行一次的场景;
▼输出星星组成的梯形练习题
package com.xian.circle;
public class Circle5_3 {
public static void main(String[] agrs) {
int c1_cond = 5;
for(int c1=1;c1<=c1_cond;c1++) {
//控制循环输出空格
for(int c2=1;c2<=5-c1;c2++) {
System.out.print(' ');
}
//控制循环输出星星
//1 3,2 5,3 7,4 9
for(int c3=1;c3<=c1+c1+1;c3++) {
System.out.print('*');
}
System.out.println();
}
}
}
▼break和continue比较
break可以用在switch和循环语句当中;continue只能用在循环语句当中;
▼增强型for循环
增强型for循环,不需要下标,也不需要循环条件,遍历结束循环执行结束.
如果需要根据下标定位,则使用普通for循环.
for(int n:intAry){
System.println(n)
}