Java基础学习-流程控制语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

流程控制语句分类:

-顺序结构

-选择结构

-循环结构

1.顺序结构

1.1 顺序结构的概述

是程序中最简单的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

1.2 顺序结构语句的执行流程

开始-->语句A-->语句B-->语句C-->结束

package com.denniscui_01;

/*

* 顺序结构:从上往下依次执行

*/

public class OrderDemo {

public static void main(String[] args) {

System.out.println("开始");

System.out.println("语句A");

System.out.println("语句B");

System.out.println("语句C");

System.out.println("结束");

}

}

2.选择结构

2.1 选择结构的概述

选择结构也被称为分支结构。有特定的语法格式,我们必须按照他的基本格式来编写代码。

Java语言提供了两种选择结构语句:

if语句

switch语句

2.2 if语句的第一种格式

if(关系表达式){

语句体;

}

执行流程:判断关系表达式看其结果是true还是false,如果是true就执行语句体,如果是false就不执行语句体。

package com.denniscui_02;

public class IfDemo {

public static void main(String[] args) {

System.out.println("开始");

//定义两个变量

int a = 10;

int b = 20;

if(a == b) {

System.out.println("a等于b");   //不执行

}

//定义变量

int c = 10;

if(a == c) {

System.out.println("a等于c");   //执行

}

System.out.println("结束");

}

}

2.3 if语句的第二种格式

if(关系表达式){

语句体1;

}else{

语句体2;

}

执行流程:判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2.

package com.denniscui_02;

public class IfDemo2 {

public static void main(String[] args) {

System.out.println("开始");

//定义两个变量

int a = 10;

int b = 20;

if(a == b) {

System.out.println("a等于b");

}else {

System.out.println("a不等于b");

}

System.out.println("结束");

//判断一个数据是奇数还是偶数

//定义变量

int c = 100;

if(c%2 == 0) {

System.out.println("c是偶数");

}else{

System.out.println("c是奇数");

}

}

}

2.4 if语句的第三种格式

if(关系表达式1){

语句体1;

}else if(关系表达式2){

语句体2;

}

...

else{

语句体n+1;

}

执行流程:判断关系表达式1看其是true还是false,如果是true就执行语句体1,如果是false就继续执行判断关系表达式2看其结果是true还是false,如果是true就执行语句2,如果是false就继续判断关系表达式...看其结果是true还是false,...,如果没有任何关系表达式为true,就执行语句体n+1。

package com.denniscui_02;

public class IfDemo3 {

public static void main(String[] args) {

System.out.println("开始");

//         x和y的关系满足如下:

//         x>=3 y = 2x + 1;

//         -1<=x<3    y = 2x;

//         x<=-1y = 2x - 1;

//         根据给定的x的值,计算出y的值并输出。

//定义变量

int x = 5;

int y;

if(x>=3) {

y = 2*x + 1;

}else if(x>=-1 && x<3) {

y = 2*x;

}else if(x<-1) {

y = 2*x - 1;

}else {

y = 0;     //if语句是判断语句,是判断就有可能是false,则如果没有else这条语句,这个程序会报错,y可能没有被初始化。

System.out.println("不存在这样的x");

}

System.out.println("y:"+y);

System.out.println("结束");

}

}

2.5 if语句的练习之获取两个数据的较大值

package com.denniscui_02;

import java.util.Scanner;

/*

* 键盘录入两个数据,获取两个数据中的较大值

*

* 分析:

*         A:看到键盘录入就应该想到键盘录入的三个步骤

*              导包,创建键盘录入对象,接收数据

*         B:获取两个数据的最大值,其实就是比较看哪个数据大

*         C:把大的数据输出即可

*

* 导包:

*         A:手动输入

*         B:点击鼠标自动生成

*         C:快捷键(推荐)

*              ctrl+shift+o

*/

public class IfTest {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

//接收数据

System.out.println("请输入第一个数据:");

int a = sc.nextInt();

System.out.println("请输入第二个数据:");

int b = sc.nextInt();

if(a>b) {

System.out.println("较大的数为:"+a);

}else {

System.out.println("较大的数为:"+b);

}

//两个数据比较完成后,我拿最大值可能需要做其他的操作

//定义一个变量,用于接收较大的值

int max;

if(a>b) {

max = a;

}else {

max = b;

}

System.out.println("max:"+max);

}

}

2.6 if语句练习之根据分数输出对应级别

package com.denniscui_02;

import java.util.Scanner;

/*

* 键盘录入学生考试成绩,请根据成绩判断该学生属于哪个级别

* 90-100  优秀

* 80-90   好

* 70-80   良

* 60-70   及格

* 60以下        不及格

*

* 分析:

*         A:键盘录入学生成绩,想到键盘录入的步骤

*         B:通过简单的分析,我们决定使用if语句格式3

*           每一次判断完成后,我们直接输出对应的级别即可

*/

public class IfTest2 {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

//接收数据

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

int score = sc.nextInt();

//if语句格式3

/*if(score>=90 && score<=100) {

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

}else if(score>=80 && score<90) {

System.out.println("好");

}else if(score>=70 && score<80) {

System.out.println("良");

}else if(score>=60 && score<70) {

System.out.println("及格");

}else {

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

}

*/

//通过测试数据,我们发现程序不够完善,所以我们加入了非法数据的判定

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

System.out.println("你输入的成绩有误");

}else if(score>=90 && score<=100) {

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

}else if(score>=80 && score<90) {

System.out.println("好");

}else if(score>=70 && score<80) {

System.out.println("良");

}else if(score>=60 && score<70) {

System.out.println("及格");

}else {

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

}

}

}

2.7 switch语句的用法

package com.denniscui_03;

import java.util.Scanner;

/*

* switch语句格式:

* switch(表达式) {

*         case 值1:

*              语句体1;

*              break;

*         case 值2:

*              语句体2;

*              break;

*         ...

*         default:

*              语句体n+1;

*              break;

* }

* 格式解释:

*         表达式:byte,short,int,char

*              JDK5以后可以是枚举

*              JDK7以后可以是字符串

*         case:就是要和表达式进行比较的值

*         break:表示中断,结束的意思。

*         default:表示所有的情况都不匹配的时候,就执行语句体n+1。和if语句的else相似。

* 执行流程:

*         A:计算出表达式的值

*         B:拿计算出来的值和case后面的值依次比较,一旦有对应的值,就执行该处的语句,在执行过程中,遇到 break,就结束。

*         C:如果所有的case都不匹配,就会执行default控制的语句,然后结束。

* 需求:

*         根据键盘录入的数值1,2,3,…7输出对应的星期一,星期二,星期三…星期日。

*/

public class SwitchDemo {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

//接收数据

System.out.println("请输入一个数字(1-7):");

int weekday = sc.nextInt();

//switch语句实现选择

switch(weekday) {

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;

}

}

}

3.循环结构语句

3.1 循环语句格式

package com.denniscui_04;

/*

* for循环语句格式:

*         for(初始化语句;判断条件语句;控制条件语句) {

*              循环体语句;

*         }

*

*         执行流程:

*              A:执行初始化语句

*              B:执行判断条件语句,看结果是true还是false

*                   如果是true,就继续执行

*                   如果是false,就结束循环

*              C:执行循环体语句

*              D:执行控制条件语句

*              E:回到B继续

*

* 需求:

*         在控制台输出10次”HelloWorld”的案例。

*/

public class ForDemo {

public static void main(String[] args) {

//原始写法

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("-------------------------");

//用循环改进

for(int x=1; x<=10; x++) {

System.out.println("HelloWorld");

}

}

}

3.2 for循环的练习之获取1-5和5-1的数据

package com.denniscui_04;

/*

* 需求:获取数据1-5和5-1

*/

public class ForTest {

public static void main(String[] args) {

//原始做法

System.out.println(1);

System.out.println(2);

System.out.println(3);

System.out.println(4);

System.out.println(5);

System.out.println("-------------");

//用循环改进

for(int x=1; x<=5; x++) {

System.out.println(x);

}

System.out.println("-------------");

//1-5的数据我们获取到了,如何获取5-1呢?

for(int x=5; x>=1; x--){

System.out.println(x);

}

}

}

3.3 for循环练习之1-5数据求和

package com.denniscui_04;

/*

* 需求:求出1-5之间数据之和

*

* 分析:

*         A:定义求和变量,初始化值是0

*         B:获取1-5之间的数据,用for循环实现

*         C:把每一次获取到的数据,累加起来就可以了

*         D:输出求和变量即可

*/

public class ForTest2 {

public static void main(String[] args) {

//定义求和变量,初始化值是0

int sum = 0;

//获取1-5之间的数据,用for循环实现

for(int x=1; x<=5; x++) {

//把每一次获取到的数据,累加起来就可以了

//sum = sum + x;

/*

* 第一次:sum = 0 + 1 = 1

* 第二次:sum = 1 + 2 = 3

* 第三次:sum = 3 + 3 = 6

* 第四次:sum = 6 + 4 = 10

* 第五次:sum = 10 + 5 = 15

*/

sum += x;

}

//输出求和结果

System.out.println("sum:"+sum);

}

}

3.4 for循环之1-100之间偶数和

package com.denniscui_04;

/*

* 需求:求出1-100之间偶数和

*

* 分析:

*         A:定义求和变量,初始化值是0

*         B:获取1-100之间的数据,用for循环实现

*         C:把获取到的数据进行判断,看是否是偶数

*              如果是,就累加

*         D:输出求和结果

*/

public class ForTest3 {

public static void main(String[] args) {

//定义求和变量,初始化值是0

int sum = 0;

//获取1-100之间的数据,用for循环实现

for(int x=1; x<=100; x++) {

//把获取到的数据进行判断,看是否是偶数

if(x%2 ==0) {

sum += x;

}

}

//输出求和结果

System.out.println("sum:"+sum);

}

}

3.5 for循环之在控制台打印水仙花数

package com.denniscui_04;

/*

* 需求:在控制台输出所有的”水仙花数”

*

* 分析:

*         什么是水仙花数呢?

*              所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

*              举例:153就是一个水仙花数。

*              153 = 1*1*1 + 5*5*5 + 3*3*3

*

*         A:三位数其实就告诉了我们水仙花数的范围

*              100-999

*         B:如何获取一个数据的每一个位上的数呢?

*              举例:我有一个数据153,请问如何获取到个位,十位,百位

*              个位:153%10 = 3;

*              十位:153/10%10 = 5;

*              百位:153/10/10%10 = 1;

*              千位:...

*              万位:...

*         C:让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出

*/

public class ForTest4 {

public static void main(String[] args) {

//通过循环获取到每一个三位数

for(int x=100; x<1000; x++) {

//获取个位,十位,百位

int ge = x%10;

int shi = x/10%10;

int bai = x/10/10%10;

//让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出

if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {

System.out.println(x);

}

}

}

}

3.6 for循环练习之统计水仙花个数

package com.denniscui_04;

/*

* 需求:统计”水仙花数”共有多少个

*

* 分析:

*         A:定义统计变量,初始化值是0

*         B:获取三位数,用for循环实现

*         C:获取三位数的个位,十位,百位

*         D:判断这个三位数是否是水仙花数,如果是,统计变量++

*         E:输出统计结果就可以了

*/

public class ForTest5 {

public static void main(String[] args) {

//定义统计变量,初始化值是0

int count = 0;

//获取三位数,用for循环实现

for(int x=100; x<1000; x++) {

//获取三位数的个位,十位,百位

int ge = x%10;

int shi = x/10%10;

int bai = x/10/10%10;

//判断这个三位数是否是水仙花数,如果是,统计变量++

if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {

count++;

}

}

//输出统计结果就可以了

System.out.println("水仙花数共有:"+count+"个");

}

}

3.7 while循环语句

package com.denniscui_05;

/*

* while循环语句的基本格式:

*         while(判断条件语句) {

*              循环体语句;

*         }

* 扩展格式:

*         初始化语句;

*         while(判断条件语句) {

*              循环体语句;

*              控制条件语句;

*         }

*

* 回顾for循环的语句格式:

*         for(初始化语句;判断条件语句;控制条件语句) {

*              循环体语句;

*         }

*/

public class WhileDemo {

public static void main(String[] args) {

//输出10次HelloWorld

/*

for(int x=1; x<=10; x++) {

System.out.println("HellloWorld");

}

*/

//while循环实现

int x=1;

while(x<=10) {

System.out.println("HellloWorld");

x++;

}

}

}

3.8 while循环练习之实现1-100数据的求和

package com.denniscui_05;

/*

* 求1-100之和。

*/

public class WhileTest {

public static void main(String[] args) {

//回顾for循环实现

/*

//定义求和变量

int sum = 0;

//获取1-100之间的数据

for(int x=1; x<=100; x++) {

//累加

sum += x;

}

System.out.println("1-100的和是:"+sum);

*/

//while循环实现

//定义求和变量

int sum = 0;

int x = 1;

while(x<=100) {

sum += x;

x++;

}

System.out.println("1-100的和是:"+sum);

}

}

3.9 do...while循环语句的格式

package com.denniscui_06;

/*

* do...while循环的基本格式:

*         do {

*              循环体语句;

*         }while(判断条件语句);

* 扩展格式:

*         初始化语句;

*         do {

*              循环体语句;

*              控制条件语句;

*         }while(判断条件语句);

* 执行流程:

*         A:执行初始化语句;

*         B:执行循环体语句;

*         C:执行控制条件语句;

*         D:执行判断条件语句,看是true还是false

*              如果是true,回到B继续

*              如果是false,就结束

*

* 练习:

*         求和案例

*         统计水仙花个数

*/

public class DoWhileDemo {

public static void main(String[] args) {

//输出10次 HelloWorld

/*

for(int x=1; x<=10; x++) {

System.out.println("HelloWorld");

}

*/

//do...while改写

int x=1;

do {

System.out.println("HelloWorld");

x++;

}while(x<=10);

}

}

3.10 三种循环的区别

虽然可以完成同样的功能,但是还是有小区别:

do…while循环至少会执行一次循环体。

for循环和while循环只有在条件成立的时候才会去执行循环体

for循环语句和while循环语句的小区别:

使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。

package com.denniscui_06;

/*

* 三种循环的区别:

*         A:do...while至少执行一次循环体

*         B:for,while循环先判断条件是否成立,然后决定是否执行循环体

*

* for和while的小区别:

*         for循环的初始化变量,在循环结束后,不可以被访问。而while循环的初始化变量,是可以被继续使用的。

*         如果初始化变量,后面还要继续访问,就使用while,否则,推荐使用for。

*

* 循环的使用推荐:

*         for -- while -- do...while

*/

public class DoWhileDemo2 {

public static void main(String[] args) {

/*

int x = 3;

while(x<3) {

System.out.println("我爱林青霞");

x++;

}

System.out.println("--------------");

int y = 3;

do {

System.out.println("我爱林青霞");

y++;

}while(y<3);

*/

for(int x=1; x<=10; x++){

System.out.println("爱生活,爱Java");

}

//这里的x无法继续访问

//System.out.println(x);

System.out.println("-----------------");

int y = 1;

while(y<=10) {

System.out.println("爱生活,爱Java");

y++;

}

System.out.println(y);

}

}

3.跳转控制语句

3.1 break语句的使用

package com.denniscui_07;

/*

* break:中断的意思

* 使用场景:

*         A:switch语句中

*         B:循环中

* 注意:

*         离开使用场景是没有意义的。

* 作用:

*         跳出循环,让循环提前结束

*/

public class BreakDemo {

public static void main(String[] args) {

//break;

for(int x=1; x<=10; x++) {

if(x == 3) {

break;

}

System.out.println("HelloWorld");

}

}

}

3.2 continue语句的使用

package com.denniscui_07;

/*

* continue:继续的意思

* 使用场景:

*         循环中

* 注意:

*         离开使用场景是没有意义的

* 作用:

*         结束一次循环,继续下一次的循环

* 区别:

*         break:退出循环

*         continue:结束一次循环,继续下一次的循环

*/

public class ContinueDemo {

public static void main(String[] args) {

//continue;

for(int x=1; x<=10; x++) {

if(x == 3) {

//break;

continue;

}

System.out.println("HelloWorld");

}

}

}

3.3 练习

按要求分析结果,并验证

for(int x=1; x<=10; x++) {

if(x%3==0) {

//分别写break,continue,说说输出几次

}

System.out.println(“我爱Java”);

}

答案:

package com.denniscui_07;

/*

* 按要求分析结果,并验证

*

* break:输出2次

* continue:输出7次

*/

public class BreakAndContinueDemo {

public static void main(String[] args) {

for (int x = 1; x <= 10; x++) {

if (x % 3 == 0) {

// 分别写break,continue,说说输出几次

//break;

continue;

}

System.out.println("我爱Java");

}

}

}

原文地址:https://www.cnblogs.com/AleiCui/p/10617438.html

时间: 2024-08-08 01:01:03

Java基础学习-流程控制语句的相关文章

JAVA基础学习流程

JAVA基础学习: 第一步:学习JAVA的开发环境配置.开发第一个Java程序.也建议大家开始使用eclipse等IDE,不必纠结是不是一定要从记事本开始. 第二步:学习数据类型.运算符.变量.这是编程的基础,是程序的“砖块”.这些内容大多数编程语言都有,而且非常类似. 第三步:学习控制语句.这是编程的基础,是程序的“混凝土”.有了控制语句+变量,理论上你就可以写任意的程序了.因此,这是进入程序的门槛,需要大量的练习. 第四步:学习面向对象基础.通过类.对象.包等基本概念讲解.学习的时候,一定要

再回首,Java温故知新(九):Java基础之流程控制语句

流程控制语句分为条件语句.循环语句和中断语句. 中断语句包括break和continue,两者的区别在于break会跳出整个循环,而continue则是跳出此次循环,之后还会继续下一次循环. 条件语句有两种,使用最多的是if...else这个没有什么难的,按照字面意思走,如果括号中的表达式为true则走if后的语句,如果为false则走else中的语句,其中只有if(){...}部分是必须的,其格式如下: if(boolean表达式1){ //表达式1为true时的操作 }else if(boo

java基础,流程控制语句

流程控制语句 条件语句: if语句: *if(条件 boolean类型){  true } *if(boolean表达式){true}else{false结果} *多重 if  else      if(){}else if(){}else *嵌套if   Switch语句: *switch(表达式){  case:  break;      ...     default:   } 表达式==常量,default可以省略. 循环语句: while语句:while(boolean表达式){循环体

java基础二 &lt;流程控制语句, 方法,数组,java内存结构&gt; 未完待续...

话不多说,直接上干货... 一:流程控制语句 break :  结束当前循环 continue:  结束本次循环,继续下次循环 return:  结束方法 二: 方法 1.方法的特点: 定义在类中的,有特定功能的函数. 方法与方法之间是平级的,不能在方法中定义方法.方法只能够调用方法. 2.方法的重载: 在同一类中,方法名相同,参数列表不同(个数不同,对应的类型不同). 与返回值类型无关. 对应的类型不同的话,与顺序有关系 与形式参数的变量名无关 3.方法的重写: 子类可继承父类中的方法,而不需

Java基础语法 - 流程控制语句

1 package com.demo4; 2 3 /* 4 * 流程控制语句 5 * 流程控制语句分类: 6 * 顺序结构 7 * 代码从上往下按照顺序执行 8 * 9 * 选择结构 10 * if 11 * if (关系表达式1) { 12 * 语句体1; 13 * } else if (关系表达式2) { 14 * 语句体2; 15 * } else { 16 * 语句体3; 17 * } 18 * switch 19 * switch(表达式) { 20 * case 值1: 21 * 语

java基础:流程控制语句(选择结构if语句)

(1)顺序结构 从上往下,依次执行 Demo: class ShunXuJieGouDemo { public static void main(String[] args) { System.out.println("程序开始了"); System.out.println("我爱Java"); System.out.println("程序结束了"); } } (2)选择结构        按照不同的选择,执行不同的代码 Java语言提供了两种选

Java基础之流程控制语句

1,顺序语句 代码从上往下依次执行. 其实,我们编写的代码中顺序结构是普遍存在的.通常情况下,代码都是由上往下,由左往右依次执行的,除了被以下的结构语句改变执行顺序. 2,条件语句 分为三类, 单if语句:if(条件表达式){ 条件表达式成立时执行该语句; } if-else语句:if(条件表达式){ 条件表达式成立时执行该语句; }else{ 条件表达式不成立时执行该语句; } if-else-if语句:if(条件表达式1){ 条件表达式1成立时执行该语句; }else if(条件表达式2){

Linux运维系统工程师与java基础学习系列-4

Java天生骄傲系列-4 程序流程控制 判断 选择 循环 判断结构: If语句三种格式: 1.  if(条件表达式) { 执行语句: } 2.  if(条件表达式) { 执行语句: } else { 执行语句: } 3.  if(条件表达式) { 执行语句: } else if (条件表达式) { 执行语句: } --. else { 执行语句: } if(条件表达式) { 执行语句: } 牛刀小试: package test.myeclipse; publicclass test1 { pub

Java基础学习中一些词语和语句的使用

在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看break和continue使用和运行效果的额说明: break:关键字,可以用于任何循环体控制结构,在循环体内执行时,当执行到break时循环会立即终止,并跳到此循环体以后的语句执行. 列如:输出0--10的数当输出到第六位时就不在继续输出了,即是跳出for循环执行for循环体以后的一句. public