Java学习从基础到精通——技术小白的成长之路(Java学习笔记)第四天

顺序结构、分支结构、循环结构、循环三要素的判断

1)顺序结构:从上往下逐行执行,每句必走。

2)分支结构:有条件的执行某语句一次,并非每句必走。

3)循环结构:有条件的执行某语句多次,并非每句必走。

 

换成官话来说:

1、顺序结构:就是程序从头到尾一个步骤一个步骤的执行;

2、选择结构:又称为分支结构,就是根据某些条件,只执行程序中某些步骤,而另一些步骤不执行;

3、循环结构:就是在程序中,根据某些条件,重复执行某几个步骤。

 

1、分支结构:

  1)if结构:1条路

  2)if...else结构:2条路

  3)if...else if结构:多条路

  4)switch..case结构:多条路

    优点:效率高、结构清晰

缺点:整数、相等

break:跳出switch

 

能用switch...case实现的,都可能用if...else if来实现

能用if...else if实现的,不一定能用switch...case实现

2、循环结构:

    while:先判断后执行,有可能一次都不执行

do...while:先执行后判断,至少执行一次

               要素1与要素3相同时,首选do...while

循环:

  1)反复执行一段相同或相似的代码

  2)循环三要素:

 2.1)循环变量的初始化

2.2)循环的条件(以循环变量为基础)

2.3)循环变量的改变(向着循环结束变)

   (循环变量:在整个循环过程中所反复改变的那个数)

如何找循环变量:

示例1:假如让你去操场跑3圈,这个跑的过程是否是一个循环?这个循环的执行过程是如何进行的?如何找循环三要素?解析过程如下:

循环变量:所跑的圈数count

循环三要素:

1)int count=0;

2)count<3

3)count++;

count=0/1/2/3时结束

解析循环过程为:

                      圈数为0

够3圈吗? 不够 跑一圈 圈数为1

够3圈吗? 不够 跑一圈 圈数为2

够3圈吗? 不够 跑一圈 圈数为3

够3圈吗? 够了

示例2:打印机打印10份简历的一个过程是一个循环过程吗?整个循环过程如何进行的?循环三要素是什么?解析的整个循环过程是?

循环变量:份数times

循环三要素:

1)int times=0;

2)times<10

3)times++;

times=0/1/2/3/4/5/6/7/8/9/10时结束

解析整个循环过程:

                        份数为0

够10份吗? 不够 打印一份 份数为1

够10份吗? 不够 打印一份 份数为2

够10份吗? 不够 打印一份 份数为3

够10份吗? 不够 打印一份 份数为4

够10份吗? 不够 打印一份 份数为5

够10份吗? 不够 打印一份 份数为6

够10份吗? 不够 打印一份 份数为7

够10份吗? 不够 打印一份 份数为8

够10份吗? 不够 打印一份 份数为9

够10份吗? 不够 打印一份 份数为10

够10份吗? 够了

示例3:输出9的乘法表:

 1*9=9

 2*9=18

  3*9=27

 4*9=36

 5*9=45

 6*9=54

 7*9=63

 8*9=72

 9*9=81

循环变量:乘数num

循环三要素:

  1)int num=9;

  2)num>=1

  3)num--;

  num=9/8/7/6/5/4/3/2/1/0时结束

(见下面代码示例)

代码示例1:成绩等级判断程序:

package eg1;

import java.util.Scanner;

public class ScoreLevel {

 

/**

 * 成绩等级判断

 */

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("请输入成绩:");

int score = scan.nextInt();

System.out.println("成绩为:"+score);

//方法一:直接if...else if...法   (推荐使用)

if(score<0 || score>100){

System.out.println("输入的成绩不合法。");

}else if (score>=90){

System.out.println("A-优秀");

}else if(score>=80){

System.out.println("B-良好");

}else if (score>=60){

System.out.println("C-中等");

}else{

System.out.println("D-不及格");

}

}

}

方法二:嵌套用法成绩等级判断程序

package eg2;

import java.util.Scanner;

public class ScoreLevel {

 

/**

 * 成绩等级判断

 */

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("请输入成绩:");

int score = scan.nextInt();

System.out.println("成绩为:"+score);

if(score>=0 &&score<=100){

if(score>=90){

System.out.println("A-优秀");

}else if(score>=80){

System.out.println("B-良好");

}else if (score>=60){

System.out.println("C-中等");

}else{

System.out.println("D-不及格");

}

}else{

System.out.println("输入的成绩不合法。");

}

}

代码示例2:

Switch...case...语句和if...else if...语句的转换代码演示:

1、Switch...case...语句:命令执行程序

public class CommandBySwitch {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("请选择功能:1.显示全部记录     2.查询登录记录     0.退出");

int commond = scan.nextInt();

switch(commond){//switch...case...只能针对整数使用,包含byte、short、int、char、String(JDK 1.7以后的都支持String了)

/*default:

System.out.println("输入错误,请重新输入");

break;

//default语句也可以放在case语句之前,但是一般不这么写,如果写在case语句之前,必须写break终止语句执行。

//不管break语句写在case语句之前还是之后,都是在case语句执行不匹配以后再执行default语句

*/

case 1://没有大括号

System.out.println("显示全部记录");

break;//break代表执行完毕、跳出语句

case 2:

System.out.println("查询登录记录");

break;

case 0:

System.out.println("欢迎下次登录");

break;

default:

System.out.println("输入错误,请重新输入");

//可以写break、也可以不用写break

}

}

}

2、if...else if...语句:命令执行程序

public class CommandBySwitch {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("请选择功能:1.显示全部记录     2.查询登录记录     0.退出");

int commond = scan.nextInt();

if(commond == 1){

System.out.println("显示全部记录");

}else if (commond == 2){

System.out.println("查询登录记录");

}else if (commond == 0){

System.out.println("欢迎下次登录");

}else{

System.out.println("输入错误,请重新输入");

 }

}

}

}

代码示例3:

public class WhileDemo {

 

/**

 * while的演示正序输出9的乘法表

 */

public static void main(String[] args) {

//正序输出9的乘法表

int num = 1;   //1、循环的初始值

while(num<=9){ //2、循环的条件

System.out.println(num+"*9="+num*9);

num++;     //3、循环的改变量

}

 

//倒序输出9的乘法表

int num1 = 9;

while(num1>=1){

System.out.println(num1+"*9="+num1*9);

num1--;

}

 

 

int time = 1;    //1、循环的初始值

 

while(time<9){   //2、循环的条件

System.out.println("行动是成功的阶梯");  //输出语句最好写在 循环的改变量之前,不会出错

time++;      //3、循环的改变量

 

}

/*

 * 执行过程:            num=1;

 * 判断为真,输出,num=2;

 * 判断为真,输出,num=3;

 * 判断为真,输出,num=4;

 * 判断为真,输出,num=5;

 * 判断为真,输出,num=6;

 * 判断为真,输出,num=7;

 * 判断为真,输出,num=8;

 * 判断为真,输出,num=9;

 * 判断为假,输出over

*/

System.out.println("over");

}

 

}

代码示例4:猜数字小游戏

package eg4;

import java.util.Scanner;

public class Guessing {

 

/**

 * 猜数字小游戏

 */

public static void main(String[] args) {

Scanner  scan = new Scanner(System.in);

/*Math.random()-------------系统随机生成0.0-0.99999999999999...的数字

 * (math.random())*1000------------------0.0-999.999999999999...

 * (math.random())*1000+1----------------1.0-1000.99999999999...

 * -----------1-1000

*/

int num = (int)(Math.random()*1000+1);

// System.out.println(num);  作弊器

 

int  guess;

int  count = 0;

do{

System.out.println("猜一个数字:(范围在0-1000内)");

 

 guess = scan.nextInt();        // 1、循环初始化

 if(guess == 0){

break;

 }

 if(guess>num){

 

System.out.println("猜大了,请继续猜");

 

if((guess-num)<50){

System.out.println("提示:猜的接近了哦!");

}

}else if(guess<num){

System.out.println("猜小了,请继续猜");

 

if((num-guess)<50){

System.out.println("提示:猜的接近了哦!");

}

}

 count++;

}while(guess!=num);                    // 2、循环条件  

if(guess == num){

System.out.println("恭喜你,猜对了。");

}else{

System.out.println("欢迎下次再来!");

}

System.out.println("你一共猜了"+count+"次,才猜对了。");

}

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值