一、控制语句

1、if 语句

if语句是指如果满足某种条件,就进行某种处理。

流程图:

2、 if…else语句

语法格式:

if (判断条件){
执行语句1
……
}else{
执行语句2
……
}

流程图:

3、 if…else ifelse语句

语法格式:

if (判断条件1) {执行语句1
} else if (判断条件2) {执行语句2
}
...
else if (判断条件n) {执行语句n
} else {执行语句n+1
}

流程图:

4、 循环语句while

语法结构:

while(循环条件){
执行语句
………
}

当循环条件为true时,循环体就会执行。循环体执行完毕时会继续判断循环条件,如条件仍为true则会继续执行,直到循环条件为false时,整个循环过程才会结束。

如果循环条件直接赋值true,则会变成死循环:

while(true){
执行语句
………
}

 5、循环语句 for

for(初始化表达式; 循环条件; 操作表达式){执行语句………
}

接下来分别用①表示初始化表达式、②表示循环条件、③表示操作表达式、④表示循环体,通过序号来具体分析for循环的执行流程。

for(① ; ② ; ③){④
}
第一步,执行①
第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步
第三步,执行④
第四步,执行③,然后重复执行第二步
第五步,退出循环

死循环格式:for(;;){}

6、 循环语句do…while

语法结构:

do {
执行语句
………
} while(循环条件);

流程图:

先运行执行语句,当循环条件为true时,执行语句循环执行,直到循环条件为false时,整个循环过程才会结束。

7、 选择结构switch

switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。

语法结构:

switch (表达式){case 目标值1:执行语句1break;//停止循环,如果没有break还会继续向下执行case 目标值2:执行语句2break;......case 目标值n:执行语句nbreak;default:     //如果之前的目标值都没有匹配,执行语句n+1执行语句n+1break;
}

在上面的格式中,switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,会执行对应case后的语句,如果没找到任何匹配的值,就会执行default后的语句。

注意:在switch语句中的表达式只能是byte、short、char、int类型的值,如果传入其它类型的值,程序会报错.

在JDK7.0中也引入了新特性,switch语句可以接收一个String类型的值。

8、 循环嵌套

while、do…while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环

for(初始化表达式; 循环条件; 操作表达式) {………for(初始化表达式; 循环条件; 操作表达式) {执行语句………}………
}

9、跳转语句(break、continue)

break语句

它出现在循环语句中,作用是跳出循环语句,执行后面的代码。

当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想使用break语句跳出外层循环则需要对外层循环添加标记。

public class BreakDemo02 {public static void main(String[] args) {int i, j; // 定义两个循环变量aaa: for (i = 1; i <= 9; i++) { // 外层循环for (j = 1; j <= i; j++) { // 内层循环if (i > 4) { // 判断i的值是否大于4break aaa; // 跳出外层循环
                }System.out.print("*"); // 打印*
            }System.out.print("\n"); // 换行
        }}
}

continue语句

continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。

//练习对1~100之内的奇数求和
public class ContinueDemo {public static void main(String[] args) {int sum = 0; // 定义变量sum,用于记住和for (int i = 1; i <= 100; i++) {if (i % 2 == 0) { // i是一个偶数,不累加continue; // 结束本次循环
            }sum += i; // 实现sum和i的累加
        }System.out.println("sum = " + sum);}
}

二、引用数据类型

引用数据类型的使用步骤:

数据类型  变量名  =  new 数据类型();

每种引用数据类型都有其功能,我们可以调用该类型实例的功能。

变量名.方法名();

1、Scanner类

Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。

Scanner使用步骤:

导包:import java.util.Scanner;

创建对象实例:Scanner sc = new Scanner(System.in);

调用方法:

int  i = sc.nextInt(); //用来接收控制台录入的数字

String s = sc.next(); //用来接收控制台录入的字符串

 2、Random类

这个Random类,用来产生随机数,它可以产生多种数据类型的随机数,

public int nextInt(int maxValue)    //产生[0,maxValue)范围的随机整数,包含0,不包含maxValue;
public double nextDouble()  //产生[0,1)范围的随机小数,包含0.0,不包含1.0

Random 使用步骤::

import导包:所属包java.util.Random

创建实例格式:Random 变量名 = new Random();

例:

import java.util.Random;public class RandomDemo {public static void main(String[] args) {// 创建Random类的实例Random r = new Random(); // 得到0-100范围内的随机整数,将产生的随机整数赋值给i变量int i = r.nextInt(100); //得到0.0-1.0范围内的随机小数,将产生的随机小数赋值给d变量double d = r.nextDouble(); System.out.println(i); System.out.println(d); }
}

 三、数组

1、定义格式:

数据类型[ ] 数组名 = new  数据类型 [元素个数或数组长度];

数组的静态初始化有两种方式:

1、类型[] 数组名 = new 类型[]{元素,元素,……};
2、类型[] 数组名 = {元素,元素,元素,……};     

2、数组遍历

在操作数组时,经常需要依次访问数组中的每个元素,这种操作称作数组的遍历。

public class ArrayDemo04 {public static void main(String[] args) {int[] arr = { 1, 2, 3, 4, 5 }; // 定义数组// 使用for循环遍历数组的元素for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]); // 通过索引访问元素1,2,3,4,5
        }}
}

3、 数组的常见问题

数组最值

public class ArrayDemo05 {public static void main(String[] args) {int[] arr = { 4, 1, 6, 3, 9, 8 }; // 定义一个数组
int max = arr[0]; // 定义变量max用于记住最大数,首先假设第一个元素为最大值// 下面通过一个for循环遍历数组中的元素for (int x = 1; x < arr.length; x++) {if (arr[x] > max) { // 比较 arr[x]的值是否大于maxmax = arr[x]; // 条件成立,将arr[x]的值赋给max
            }}System.out.println("max=" + max); // 打印最大值
    }
}

数组异常

1>数组越界异常

每个数组的索引都有一个范围,即0~length-1。在访问数组的元素时,索引不能超出这个范围,否则程序会报错

 1public class ArrayDemo06 {2    public static void main(String[] args) {3        int[] arr = new int[4]; // 定义一个长度为4的数组4        System.out.println("arr[0]=" + arr[4]); // 通过角标4访问数组元素5    }6}

运行结果:

现这个异常的原因是数组的长度为4,其索引范围为0~3,而上述代码中的第4行代码使用索引4来访问元素时超出了数组的索引范围。

2>空指针异常

在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常

 1public class ArrayDemo07 {2    public static void main(String[] args) {3        int[] arr = new int[3]; // 定义一个长度为3的数组4        arr[0] = 5; // 为数组的第一个元素赋值5        System.out.println("arr[0]=" + arr[0]); // 访问数组的元素6        arr = null; // 将变量arr置为null7        System.out.println("arr[0]=" + arr[0]); // 访问数组的元素8    }9}

运行结果:

通过上图所示的运行结果可以看出,上述代码中第4、5行代码都能通过变量arr正常地操作数组。第6行代码将变量置为null,当第7行代码再次访问数组时就出现了空指针异常NullPointerException。

 4、二维数组

二维数组的定义方式:

/*第一种方法*/
int[][] arr = new int[3][4];//相当于定义了一个3*4的二维数组,3个长度是4的一维数组
/*第二种方法*/
int[][] arr = new int[3][];//和第一种类似,只是数组中每个元素的长度不确定
/*第三种方法*/
int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};//直接赋值

二维数组元素遍历:两个for循环内嵌

数组元素累加和:利用遍历相加

例:接下来通过一个案例来熟悉二维数组的使用。

例如要统计一个公司三个销售小组中每个小组的总销售额以及整个公司的销售额。如下所示

l 第一小组销售额为{11, 12}万元

l 第二小组销售额为{21, 22, 23}万元

l 第三小组销售额为{31, 32, 33, 34}万元。

 1public class ArrayDemo10 {2    public static void main(String[] args) {3        int[][] arr = new int[3][]; // 定义一个长度为3的二维数组4        arr[0] = new int[] { 11, 12 }; // 为数组的元素赋值5        arr[1] = new int[] { 21, 22, 23 };6        arr[2] = new int[] { 31, 32, 33, 34 };7        8        int sum = 0; // 定义变量记录总销售额9        for (int i = 0; i < arr.length; i++) { // 遍历数组元素10            int groupSum = 0; // 定义变量记录小组销售总额11            for (int j = 0; j < arr[i].length; j++) { // 遍历小组内每个人的销售额12                groupSum = groupSum + arr[i][j];13            }14            sum = sum + groupSum; // 累加小组销售额15            System.out.println("第" + (i + 1) + "小组销售额为:" + groupSum + " 万元");16        }17        System.out.println("总销售额为: " + sum + " 万元");18    }19}

运行结果:

例2:游戏操作如下:

l 后台预先生成一个1-100之间的随机数,用户键盘录入猜数字

l 如果猜对了,打印“恭喜您,答对了”

l 如果猜错了

猜大了:打印“sorry,您猜大了!”

猜小了:打印“sorry,您猜小了!”

l 直到数字猜到为止

import java.util.Random;//导入包Random
import java.util.Scanner;//导入包Scanne
class Demo04
{public static void main(String[] args) {Random r = new Random();int a=r.nextInt(99);//随机产生0-99的数int b=a+1;//随机产生0-99的数System.out.println("请输入您猜测的数:");Scanner sc = new Scanner(System.in);int x=sc.nextInt();//输入猜测的数    x     while(true){if(x>b){System.out.println("sorry,您猜大了!");}else if(x<b){System.out.println("sorry,您猜小了!");}else{System.out.println("恭喜您,答对了");break;}x=sc.nextInt();}

转载于:https://www.cnblogs.com/dk2557/p/9328964.html

java 控制语句、数组、方法相关推荐

  1. java findindex_数组方法find、filter、findIndex简介

    前言 ES6提供了很多新的API,数组对象的尤为实用,但是如果我们没有在相对应的开发环境下,很难对这些API有深入的了解,毕竟实践出真知. find.filter.findIndex这三个方法都是对于 ...

  2. Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...

      Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...

  3. 菜鸟学习笔记:Java基础篇2(变量、运算符、流程控制语句、方法)

    菜鸟学习笔记:Java基础篇2 变量 基本概念 变量作用域 final关键字 运算符 算术运算符 比较运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 运算符优先级 Java三种流程控制语句 顺序 ...

  4. java定义一个方法,返回一个整数数组的元素平均值

    java定义一个方法,返回一个整数数组的元素平均值 /*** 定义一个方法* 返回一个整数数组的元素平均值*/ public class Test25 {public static double av ...

  5. java定义一个方法,返回一个整数数组的元素最小值

    java定义一个方法,返回一个整数数组的元素最小值 /*** 定义一个方法* 返回一个整数数组的元素最小值*/ public class Test24 {public static int minAr ...

  6. java定义一个方法,返回整数数组的元素最大值

    java定义一个方法,返回整数数组的元素最大值 /*** 定义一个方法* 返回整数数组的元素最大值*/ public class Test23 {public static int maxArray( ...

  7. java定义一个方法,返回一个整数数组的和

    java定义一个方法,返回一个整数数组的和 /*** 定义一个方法* 返回一个整数数组的和*/ public class Test22 {//定义数组public static int getArra ...

  8. java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...

    java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...

  9. java数组 方法_Java数组的十大方法

    Java数组的十大方法 以下是Java Array的前10种方法.他们是来自stackoverflow的投票最多的问题. 0.声明一个数组 String[] aArray = new String[5 ...

  10. java封装数组_Java封装数组之动态数组实现方法详解

    本文实例讲述了Java封装数组之动态数组实现方法.分享给大家供大家参考,具体如下: 前言:在此之前,我们封装的数组属于静态数组,也即数组空间固定长度,对于固定长度的数组当元素超过容量时会报数组空间不足 ...

最新文章

  1. 【直播】鱼佬:心跳信号分类赛高分突破
  2. 李飞飞、吴恩达、Bengio等人的15大顶级深度学习课程,你收集全了吗?
  3. Git安装及配置5分钟快速教程
  4. oracle数据库连接时报12514_连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程...
  5. LeetCode 552. 学生出勤记录 II(动态规划)
  6. 95-31-020-ChannelGroup-DefaultChannelGroup
  7. MySQL数据库专家分享资深DBA经验
  8. 从Flutter路由报错引申BuildContext详解
  9. 前端性能优化方面的知识
  10. oracle 审计变换表空间_Oracle审计日志和审计策略数据表迁移到新表空间
  11. Qt QMake详解
  12. JS获取屏幕的宽度、高度
  13. 微信h5界面隐藏刷新功能_隐藏微信H5页面下拉出现的网址
  14. 跟着团子学SAP PS:SAP PS模块常用报表介绍及增强建议
  15. kaldi中fbank特征提取详解(结合源码,深度剖析)
  16. 基于VisualStudio历时20年打造的史诗级游戏
  17. python与会计学_会计有必要学python吗?
  18. python数字转字符串_字符串转换与格式化
  19. windows 7 系统显示电池电量95% 可用(电源已接通,未充电)解决办法
  20. CSP-S(提高组)游记

热门文章

  1. 《Python machine learning and practice》—— 良\恶性乳腺癌肿瘤预测
  2. 征战蓝桥 —— 2018年第九届 —— C/C++B组第3题——乘积尾零
  3. 排序算法 —— 选择排序
  4. [Qt教程] 第49篇 进阶(九) 多媒体应用简介
  5. mysql导入wordpress_WordPress搬家,导入mysql出错的解决方法 - 老牛博客
  6. nbu还原oracle,NBU恢复oracle
  7. 找到所有数组中消失的数字—leetcode448
  8. MacOS开启系统自带的NTFS读写功能
  9. sdk编程改变static控件字体和颜色
  10. 关于java自动生成一个tostring-json,解决hibernate框架,每次全属性输出,的数据动态且限制对象的属性书写到前端,使用模板!