Java——分支+循环结构+Random随机数

1. 分支结构

1.1 if分支

/*格式1: if(条件表达式){代码.....}*/
//心跳检测
int heartBeat = 30;
if (heartBeat <60 || heartBeat >100){
	System.out.println("您的心跳数据是:"+ heartBeat +",您可能需要进一步检查!");
}
 System.out.println("检查结束");

/*格式2:if(条件表达式){代码....} 
		else{代码.....}     */
//发红包
double money = 5000;
if (money >= 1314){
	System.out.println("success");
}
else{
	System.out.println("fall");
}
        
/*格式3:if(条件表达式){代码...} 
		else if(条件表达式){代码...} ....  
		else{代码..}     */		
//绩效系统:
int s= 97;
if (s>=0 && s<60){
    System.out.println("c");
}
else if(s>=60 && s<80){
    System.out.println("b");
}
else if(s>=80 && s<90){
    System.out.println("a");
}
else if(s>=90 && s<100){
    System.out.println("a+");
}
else{
    System.out.println("输入错误");
}

1.2 switch分支

  • 匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好
  • 执行流程:
    1. 先执行表达式的值,拿着这个值去与case后的值进行匹配
    2. 匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支
    3. 如果case后的值都不匹配则执行default代码
/* 
switch(表达式){
	case 值1:
		执行代码;
        break;
    case 值2:
    	执行代码;
        break;
        ....
    case 值n-1:
    	执行代码;
        break;
    default:
        执行代码n;
   }
*/
//例
String weekday = "周二";
switch(weekday){
    case "周一":
        System.out.println("1");
        break;
    case "周二":
        System.out.println("2");
        break;
    case "周三":
        System.out.println("3");
        break;
    case "周四":;
        System.out.println("4");
        break;
    case "周五":
        System.out.println("5");
        break;
    case "周六":
        System.out.println("6");
        break;
    case "周日":
        System.out.println("7");
        break;
    default:
        System.out.println("输入错误!");;
}      
  • 注意事项:
    1. 表达式类型只能是byteshortintcharStringenum(枚举),不支持double、float、long
    2. case给出的值不允许重复,且只能是字面量,不能是变量
    3. 不要忘记写break,否则会出现穿透现象
    4. 存在多个case分支的功能代码是一样的时,可以用穿透性把流程集中到同一处处理,这样就可以简化代码
//穿透现象运用
int month = 7;
switch(month){
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        System.out.println(month + "月是31天");
        break;
    case 2:
        System.out.println(month + "月闰年29天,非闰年28天");
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        System.out.println(month + "月是30天");
    default:
        System.out.println("数据错误!");
}

2. 循环结构

2.1 for循环

  • 控制一段代码反复执行很多次
/*格式:
for (初始化语句; 循环条件; 迭代语句){
		循环体语句;   //(重复执行的代码
}
*/

//示例:输出3次HelloWorld
for (int i=0; i<3; i++){
		System.out.printin("HelloWorld");
}

//求和
int sum = 0;
for (int i = 1; i <= 10 ; i++) {
    sum += i;
}
System.out.println("和为:" + sum);

//求奇数和
//方法1
int sum1 = 0;
for (int i = 1; i <= 10 ; i++) {
    if (i%2 == 1) {
        sum1 += i;
    }
}
System.out.println("奇数和为:" + sum1);
//方法2
int sum2 = 0;
for (int i = 1; i <= 10 ; i+=2) {
    sum2 += i;
}
System.out.println("奇数和为:" + sum2);

//水仙花数
int count = 0;
for (int i = 100; i <= 999; i++) {
    int g = i % 10;
    int s = i / 10 % 10;
    int b = i / 100;
    if ((g*g*g + s*s*s + b*b*b) == i){
        count ++;
        System.out.print(i+"\t");
    }
}
System.out.println();
System.out.println("水仙花个数是:" + count);

2.2 while循环

/*格式
while(循环条件){
循环体语句;
迭代语句;
}
*/
int i = 0;
while(i < 3){
    System.out.println("hello");
    i++;.
    
//案例:珠穆朗玛峰
double peakHeight = 8848860;
double paperThickness = 0.1;
int count = 0;
while (paperThickness < peakHeight){
    paperThickness *= 2;
    count++;
}
System.out.println("折叠次数:" + count);
System.out.println("纸张最终厚度:" + paperThickness);
/*也可以用for循环
for (;paperThickness < peakHeight;){
	paperThickness *= 2;
    count++;
}*/

2.3 do...while循环

int i = 0;
do{
    System.out.println("hello");
    i++;
}while(i < 3);

三种循环的区别:

  • for循环和while循环——先判断后执行
  • do…while循环——第一次执行后判断

for循环和while循环的区别:

  • 功能上完全一样,for能解决的问题while也能解决,反之亦然
  • 使用规范:知道循环几次——for;不知道循环几次——while
  • for循环,控制循环的变量只在循环中可以使用;while循环,控制循环的变量在循环后还可以继续使用

2.4 死循环

//
for(;;){
    System.out.println("hello");
}

//经典while死循环
while(true){
    System.out.println("死循环");
}
//
do{
    System.out.println("死循环");
}while(true)

//案例:密码输入
int okPassword = 520;
Scanner sc = new Scanner(System.in);
while (true){
    System.out.println("请您输入正确的密码");
    int password = sc.nextInt();
    if(password == okPassword){
        System.out.println("登录成功");
        break;
    }
    else{
        System.out.println("密码错误");
    }
}

2.5 嵌套循环

//嵌套循环模板
for (int i = 0; i < ; i++) {
   for (int j = 0; j < ; j++) {
   //执行语句
   }
}

//案例:4*5列矩阵
for (int i = 0; i < 4; i++) {
   for (int j = 0; j < 5; j++) {
       System.ot.print("*");
   }
   System.out.println();
}

3. 跳转关键字:breakcontinue

  • break:跳出并结束当前所在循环的执行;只能用于结束所在循环,或者结束所在switch分支的执行
  • continue:用于跳出当前循环的当次执行,进入下一次循环;只能在循环中进行使用
//break和continue的作用
for (int i = 0; i < 5; i++) {
    System.out.println("hello");
    if(i == 2){
        break;//跳出并结束当前循环的执行
    }
}

for (int i = 0; i < 5 ; i++) {
    if(i == 3){
        continue;//立即跳出当次执行,进入循环的下一次
    }
    System.out.println("helloworld");
}

4. Random随机数

  • 作用:用于在程序中获取随机数的技术

使用步骤:

  1. 导包:告诉程序去JDK的哪个包中找随机数技术
  2. 写一行代码代表得到随机数对象
  3. 调用随机数的功能获取0-9的随机数
import java.util.Random;
Random r = new.Random();
int number = r.nextInt(10);

注意:

  • nextInt(n) 功能只能生成:0n-1 之间的随机数,不包含n
  • Random生成区间随机数的技巧:减加法
import java.util.Random;  //导包
public class NoteDemo {
    public static void main(String[] args) {
        Random r = new Random();  //创建随机数对象
        //调用nextInt方法可以同时返回一个整型的随机数给你
        for (int i = 0; i < 10; i++) {
            int data = r.nextInt(10);//0-9不包含10(包前不包后)
            System.out.println(data);
        }
    }
}

//生成3-10之间的随机数
Random r = new Random();
int number = r.nextInt(7) + 3;  

5. 综合案例: 猜数字游戏

import java.util.Random;
import java.util.Scanner;

public class NoteDemo {
    public static void main(String[] args) {
        //随机一个1-100之间的数
        Random r = new Random();
        int luckNumber = r.nextInt(100) + 1;

        //使用一个死循环让用户不断猜测,并给出提示
        Scanner sc = new Scanner(System.in);
        while(true){
            //让用户输入猜测数据
            System.out.println("请输入猜测数据(1-100):");
            int guessNumber = sc.nextInt();

            //判断猜测是否准确
            if(guessNumber > luckNumber){
                System.out.println("猜测数据过大!");
            }
            else if(guessNumber < luckNumber){
                System.out.println("猜测数据过小!");
            }
            else{
                System.out.println("猜测正确!");
                break;
            }
        }
        
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CMCJR

新手小白,如有不当,敬请指正!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值