条件选择结构if写法及特点
1. if简单语法结构
if(判断条件){
满足 判断条件(true),就执行此大括号里面的内容
}
if(判断条件){
满足 判断条件(true),就执行此大括号里面的内容
}
if(判断条件){
满足 判断条件(true),就执行此大括号里面的内容
}
注意:没有写在一起的if结构相互之间,不互斥
2. else if语法结构
if(判断条件A){
满足 判断条件A(true),就执行此大括号里面的内容,后面的else-if不执行
}else if(判断条件B){
满足 判断条件B(true),就执行此大括号里面的内容
}else if(判断条件A){
满足 判断条件A(true),就执行此大括号里面的内容,后面的else-if不执行
}else if(判断条件B){
满足 判断条件B(true),就执行此大括号里面的内容
}
注意:
1. else if可以写多个
2. 写在一起的if结构相互之间互斥
3. else 语法结构
if(判断条件A){
满足 判断条件A(true),执行此大括号内部内容,后面的else-if及else不执行
}else if(判断条件B){
满足 判断条件B(true),执行大括号里面的内容,后面的else-if 及else不执行
} else if(判断条件C){
满足 判断条件C(true),就执行此大括号里面的内容,后面的 else 不执行
}else{
前面的if esle-if 都不满足条件(false),执行此大括号里面的内容
}
3.1 switch语法结构
switch(x){//x是 变量或者一个表达式:该值的类型,java规定的类型
case 变量的可能值1: 功能语句;break;
case 变量的可能值2: 功能语句;break;
case 变量的可能值3: 功能语句;break;
........
default:功能语句;break;
}
switch特殊的一些情况
1. case后面的值应该和变量的类型一致;
2. 执行顺序,是先依次找完所有的case值进行匹配,如果都不匹配才会执行default
3. case的顺序(包括default) 可以是任意的,但是建议先按照case的值的大小顺序排列,default放最后
4. break的作用,结束当前的这个switch结构
① 从第一个匹配的条件开始,到第一个break之间的所有case判断失效
② 在执行功能语句时,如果到末尾都没有break,自动结束,不会再循环回去。
③ 最后一个break 可以省略掉,但是建议还是写上
5. 遇到第一个break结束结构特点示例:春夏秋冬的例子?
6. switch中的()中的变量地方类型可以是哪些?
java5之前 : byte short char int
java5支持 : enum枚举 (面向对象部分学习了之后回头测试)[百度]
java7支持 : String 类型
5.1 while简单语法格式:
while(条件(布尔类型的)){
// 循环体à具体做什么事情
}
5.2 基本语法while执行流程
1. 一个循环可能会循环执行多次
1) 第一次判断条件true,继续执行
2) 第二次判断条件true,继续执行
3) 第三次判断条件true,继续执行
4) 。。。。。
5) 直到第n次判断条件false,终止循环
2. 为什么第一次 第二次是true ......... 第n次就是false?
定义一个整数的变量记录循环的次数
循环一次,自增一次
根据次数进行判断
5.3 常用while语法应用
常用语法结构
int i = 0;//A循环初始化语句
while( i<=10 ){//B循环判断语句
// 循环体à具体做什么事情//C循环功能语句
i++;//D循环后语句
}
5.4 while执行流程及应用示例
1)
A ----->只会执行一次
B ----->true---->C---->D
B ----->true---->C---->D
B ----->true---->C---->D
.......
B ----->false 循环结束
2) 写一段代码计算1-10的和。
① 传统的做法
1+2+3+4+5+6+7+8+9+10
如果要求计算1-100 , 1-1000 这样写是否合理?
② 使用while循环
1.可以动态的获得每一个加数
2.使用while循环,每循环一次,把取到的加数累加起来
3.在循环的外面定义一个变量用来放计算的和的值
6.1 语法格式
do{
// 循环体
}while(条件);
6.2 do-while
1. 首先执行do结构体里面的功能代码一次
2. 第一次判断while()结果为ture
3. 执行do循环体.......
4. 第二次判断while()结果为ture
5. 执行do循环体.......
6. .......
第n次判断
1. for基本用法[掌握]
7.1 语法格式:
for(初始A;条件判断B;循环后操作C){
//循环体C
}
for的执行流程:
初始化语句会执行一次;只会执行一次
l 整个for循环结构中的 A 只会执行一次
循环第一次:AàB(true)àDàC
第二次: B(true)àDàC
第三次: B(true)àDàC
…
第n次: B(false) 结束整个循环
什么是嵌套循环
概念:循环嵌套 循环里面还有循环,可以嵌套多层,不同的循环结构相互之间也可以嵌套。
for(){
for(){
for(){
}
}
}
8.2 循环嵌套应用举例
①要求打印五行星星如下格式:允许每次打印五课“*****”;
*****
*****
*****
*****
*****
步骤:
1. 写上相同的5个 System.out.println(“*****”);
2. 优化上面的代码,使用一个执行5次的循环,循环主体:System.out.println(“*****”)
②要求打印如上五行星星,要求每次只能打印一颗星星:”*”
步骤:
3. 希望一个一个的打印*(想想在控制台怎么实现单个打印*)
4. 使用循环优化上面的代码
class ForDaXingXingDemo {
public static void main(String[] args) {
//外层for循环控制打星星的行数
for(int i = 1; i <= 5 ;i++){
for(int j = 1;j<=5;j++){//控制每行打星星的数量
System.out.print("*");//一次打印一颗,没打印一颗不换行
}
System.out.println();//每打完一行星星就换行一次
}
}
}
1. 循环控制语句[掌握]
9.1 break
l 4.1 break:表示终止当前当层循环
1) 循环10次,打印计数器i的值
2) 假设当遇到i的值是4的时候,终止整个循环
3) 每一次循环,都应该判断的值是否是4,如果是,执行一个break;
4) 怎么测试终止当前这一层的循环体?
a. 使用嵌套循环测试
b. 给循环添加标签(名字)
c. 语法:用break 名字; ---> 结束外层循环
d. 结束当前循环体的循环结构(标签名字必须符合Java中标识符的命名规则)
test:for(int i = 1 ; i <= 5 ; i++){
for(int j = 1 ; j <= 5 ; j++){
System.out.println("j" + j);
if(j==3){
break test;
}
}
}
4.1.1 break练习
①求出100以内前5个2的倍数的数字
9.2 continue
l continue 跳过本次循环,继续下一次循环
场景:一周每天重复做的事情就是 :打代码
但是第5天不想打代码,第6 和第7天仍然继续打代码,怎么实现?
l 4.2.1练习
1) 计算出1—20之间所有不能被3整除的整数,的总和 大于(或等于)100的第一个数字
for(){
//判断能被3整除 ,跳过当层循环继续下一次循环
if(a%3==0){
continue;
}
//求总和sum
sum+=i;
//再有一个判断sum大于(或等于)100 用break 终止循环
if(sum>=100){
//打印sum i
break;
}
}
9.3 return
l return
1. return 表示结束当前的方法,