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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值