JAVA基础第三天

1.switch语句


1.分支语句swtich语句   

格式:                                                                                                                   

switch (表达式) {
 case 1:
 语句体1;
 break;
 case 2:
 语句体2;
 break;
 ...
 default:
 语句体n+1;
 break; }

执行流程:        

  • 首先计算出表达式的值
  • 其次,和 case 依次比较,⼀旦有对应的值,就会执行相应的语句,在执行的过程中,遇到 break 就会结束。
    • 最后,如果所有的 case 都和表达式的值不匹配,就会执行 default 语句体部分,然后程序结束掉。
      注释:当default没有写在最上部语句中也没有break时,case就会开始穿透,不管值是否对应,他都会一直往下执行语句,知道遇到break或者整体switch语句执行才会结束。
      (switch表达式可以使用,字节型(byte)、短整型(short)、整形(int)、字符串(String)、字符(char)枚举)。

示例代码: 

public static void main(String[] args){
 // 1. 键盘录⼊数据,使⽤变量接收
 Scanner sc = new Scanner(System.in);
 System.out.println("请输⼊");
 int week = sc.nextInt();
 // 2. 多情况判断,采⽤switch语句实现
 switch(week){// 3. 在不同的case中,输出对应的日期
 case 1:
 System.out.println("星期一");
 break;
 case 2:
 System.out.println("星期二");
 break;
 case 3:
 System.out.println("星期三");
 break;
 case 4:
 System.out.println("星期四");
 break;
 case 5:
 System.out.println("星期五");
 break;
 case 6:
 System.out.println("星期六");
 break;
 case 7:
 System.out.println("星期日");
 break;
 default:
 System.out.println("您的输⼊有误");
 break;
 }
 } }

2.JAVA中的循环结构语句

循环:

循环语句可以在满足循环条件的情况下,反复执行某⼀段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将⼀直执行下去,形 成死循环。

1.for循环格式:

for (初始化语句;条件判断语句;条件控制语句) {
            循环体语句; 
}
格式解释:
  • 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样    
  • 条件判断语句: 用于表示循环反复执行的条件,简单说就是判断循环是否能⼀直执⾏下去 
  • 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
  • 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去 

执行流程:

  • 执行初始化语句
  • 执行条件判断语句,看其结果,是true还是false
  •              如果是false,循环结束
  •              如果是true,继续执行
  • 执行循环体语句
  • 执行条件控制语句
  • 回到2,继续

示例代码(for案例):

//在控制台输出1-5和5-1的数据
public class ForTest01 {
 public static void main(String[] args) {
 //需求:输出数据1-5
 for(int i=1; i<=5; i++) {
 System.out.println(i);
 }
 System.out.println("--------");
 //需求:输出数据5-1
 for(int i=5; i>=1; i--) {
 System.out.println(i);
 }
 }
}

for循环水仙花案例-水仙花数

需求:在控制台输出所有的“水仙花数”
解释:什么是水仙花数?
水仙花数,指的是⼀个三位数,个位、⼗位、百位的数字立方和等于原数
例如 153 3*3*3 + 5*5*5 + 1*1*1 = 153
思路:
1. 获取所有的三位数,准备进⾏筛选,最⼩的三位数为100,最⼤的三位数为999,使⽤for循环获取
2. 获取每⼀个三位数的个位,⼗位,百位,做if语句判断是否是⽔仙花数

public class ForTest {
 public static void main(String[] args) {
 //输出所有的⽔仙花数必然要使⽤到循环,遍历所有的三位数,三位数从100开始,到999结束
 for(int i=100; i<1000; i++) {
 //在计算之前获取三位数中每个位上的值
 int ge = i%10;
 int shi = i/10%10;
 int bai = i/10/10%10;
//判定条件是将三位数中的每个数值取出来,计算⽴⽅和后与原始数字⽐较是否相等
 if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
 //输出满⾜条件的数字就是⽔仙花数
 System.out.println(i);
 }
 }
 }
}

2.while循环

while循环完整格式:

初始化语句;
while (条件判断语句) {
 循环体语句;
 条件控制语句; 
}

while循环执行流程:

  • 执行初始化语句
  • 执行条件判断语句,看其结果是true还是false
  •               如果是false,循环结束
  •               如果是true,继续执行
  • 执行循环体语句
  • 执行条件控制语句
  • 回到2继续

   示例代码:

public class WhileDemo {
 public static void main(String[] args) {
 //需求:在控制台输出5次"HelloWorld"
 //for循环实现
 for(int i=1; i<=5; i++) {
 System.out.println("HelloWorld");
 }
 System.out.println("--------");
 //while循环实现
 int j = 1;
 while(j<=5) {
 System.out.println("HelloWorld");
 j++;
 }
 }

3.do while       

    dowhile完整格式:

初始化语句;
do {
 
循环体语句;
条件控制语句;
 }while(条件判断语句);

执行流程:

  1.  执行初始化语句   
  2.  执⾏循环体语句      
  3. 执⾏条件控制语句
  4. 执⾏条件判断语句,看其结果是true还是false   
         如果是 false ,循环结束
         如果是 true ,继续执行
  5. 回到2继续 

示例代码:                                                                                      

public class DoWhileDemo {
 public static void main(String[] args) {
 //需求:在控制台输出5次"HelloWorld"
 //for循环实现
 for(int i=1; i<=5; i++) {
 System.out.println("HelloWorld");
 }
 System.out.println("--------");
 //do...while循环实现
 int j = 1;
 do {
 System.out.println("HelloWorld");
 j++;
 }while(j<=5);
 }
}

三种循环的区别:

  • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
  • do...while循环先执行⼀次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别:
  • 条件控制语句所控制的自增变量,因为归属 for 循环的语法结构中,在 for循环结束后,就不能再次被访问到了
  • 条件控制语句所控制的自增变量,对于 while 循环来说不归属其语法结构中,在 while循环结束后,该变量还可以继续使用
死循环(无限循环)的三种格式
  1. for(;;){}
  2. while(true){}
  3. do {} while(true);

跳转控制语句 

 跳转控制语句(break

        跳出循环,结束循环

跳转控制语句( continue
        跳过本次循环,继续下次循环
注意: continue 只能在循环中进行使用!
public class Demo1Continue {
 /*
 continue : 跳过某次循环体内容的执⾏
 
 注意:使⽤是基于条件控制, 在循环内部使⽤.
 
 需求: 模拟电梯上⾏的过程 1-24层, 4层不停.
 */
 public static void main(String[] args){
 for(int i = 1; i <= 24; i++){
 if(i == 4){
 continue;
 }
 System.out.println(i + "层到了~");
 }
 }
 
}
public class Demo2Break {
 /*
 break : 终⽌循环体内容的执⾏
 注意:使⽤是基于条件控制的
 break语句只能在循环和switch中进⾏使⽤.
 
 需求: 模拟20岁⼯作到80岁, 60岁退休.
 */
 public static void main(String[] args){
 for(int i = 20; i <= 80; i++){
 if(i == 60){
 break; // 结束整个循环
 }
 System.out.println(i + "岁正在上班");
 }
 }
 
}

3.Random

Random产⽣随机数:Random 类似 Scanner ,也是 Java 提供好的 API ,内部提供了产生随机数的功能。
使用步骤
1. 导⼊包
import java.util.Random;
2. 创建对象
Random r = new Random();
3. 产生随机数
int num = r.nextInt(10);
解释: 10 代表的是⼀个范围,如果括号写 10 ,产⽣的随机数就是 0-9 ,括号写 20 ,参数的随机数则是0-19
示例代码:
import java.util.Random;
public class Demo1Random {
 /*
 Random : 产⽣随机数
 
 1. 导包 : import java.util.Random;
 导包的动作必须出现在类定义的上⾯
 2. 创建对象 : Random r = new Random();
 上⾯这个格式⾥⾯,r 是变量名,可以变,其他的都不允许变
 3. 获取随机数 : int number = r.nextInt(10); //获取数据的范围:[0,10) 包括0,不包括10
 上⾯这个格式⾥⾯,number是变量名,可以变,数字10可以变。其他的都不允许变

 需求: 产⽣随机数1-10之间的*/


 public static void main(String[] args){
 // 2. 创建对象
 Random r = new Random();
 
 for(int i = 1; i <= 10; i++){
 // 3. 获取随机数
 int num = r.nextInt(10) + 1; // 1-10
 System.out.println(num);
 }
 
 
 
 } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值