首页 > 代码库 > Java--分支语句、循环、数组、控制台输入语句、常用数学函数
Java--分支语句、循环、数组、控制台输入语句、常用数学函数
**-----本章节-----**
1.分支语句
2.循环
3.数组
4.控制台输入语句
5.部分常用的数学函数
==============================================================
一分支语句
1.概念
(1)分支语句又称条件语句条件语句使部分程序可根据某些表达式的值被有选择地执行。
(2)Java编程语言支持双路 if和多路 switch 分支语句。
==================================================================
2.分支语句的形式
(1)If-else语句
在 Java编程语言中if()用的是一个布尔表达式而不是数字值.
(2)Switch语句
表达式的值必须与整型兼容或者enum枚举类型的常量值包含byte、short、int 和char不能是字符串或对象也不能是long型的值
注选择分支形式的原则是否具有固定的数值 。
=======================================================
3.if分支语句的形式
(1)形式1
if(boolean类型表达式){
语句A;
}
功能当表达式值为false时执行语句A否则跳过语句A。
(2)形式2
if(boolean类型表达式){
语句A;
}
else{
语句B
}
功能表达式为true执行A表达式为false执行B
注如果不用“{ }”则“else”总是与最接近它的前一个“if”相匹配
(3)形式3
if(Boolean类型表达式1){
语句1;
}
else if(表达式2){
语句2;
}
else if(表达式3){
语句3;
}
…… ……
else if(表达式n){
语句n;
}
else{
语句n;
}
**-----总结if-else语句的规则-----**
(1)if后的括号不能省略括号里表达式的值最终必须返回的是布尔值 。
(2)如果条件体内只有一条语句需要执行那么if后面的大括号可以省略但这是一种极为不好的编程 习惯。
(3)对于给定的ifelse语句是可选的else if 语句也是可选的。
(4)else和else if同时出现时else必须出现在else if 之后 。
(5)如果有多条else if语句同时出现那么如果有一条else if语句的表达式测试成功那么会忽略掉 其他所有else if和else分支。
(6)如果出现多个if,只有一个else的情形else子句归属于最内层的if语句。
=======================================================
4.switch语句
(1)概念只能针对某个表达式的值做出判断从而决定程序执行哪一段代 码。
注:switch语句中的表达式只能是byte、short、char、int类型的值如果传入其 他值会报错。后引入enum枚举和String类型的值两个新特性也符合规则。
注:*、switch只能匹配固定值但if语句可以匹配固定值也可以匹配范围
**、switch只能匹配int/char类型的变量但是从JDK1.8开始可以匹配字符 串
(2)switch语句语法格式
switch(整型或字符型变量){
case const1:
statement1;
break;
case const2:
statement2;
break;
…… ……
[default:
statement default;
break;]
}
*、 break在此处表示跳出这一分支。
**、 如果没有 break 语句作为某一个 case 代码段的结束句则程序的执行将继 续到下一个case而不检查 case 表达式的值。
***、当变量或表达式的值不能与任何 case 值相匹配时可选缺省符(default)指 出了应该执行的程序代码case之后可以是直接的常量数值。
(3)当变量值为一个范围中的任何值且程序的处理方式相同时 则有如下使用方式
switch(){
case 1:
case 2:
case 3:
System.out.println();
break;
case 4:
case 5:
System.out.println();
break;
default:
System.out.println();
break;
}
(4)switch语句常见错误
*、
float a = 0.123;
switch(a) {
//错误a不是整型或字符类型变量。
....
}
**、
switch(formWay){
case 2-1 : //正确
...
case a-2 : //错误
...
case 2.0 : //错误
...
}
***、
switch (formWay) {
case 1 : {
int a=2;
...
}
//正确变量a被明确限定在当前范围内
case 2 :
...
}
//错误。由于case不明确的范围编译器无法在此处定义一个变量。
注一般教科书上只是说 case 分支可以不使用但这里我想提醒大家并不是任何情况下case分支都可以不加{}比如你想在某个case里定义一个变量
二循环
1.概念
循环语句在程序设计中用来描述有规则重复的流程。循环语句总共有三种常见的形式
(1)for 语句
(2)while 语句
(3)do/while语句
循环语句作用将一段代码或程序重复执行
=====================================================
2.while 循环语句
语法结构如下
while(循环条件){
执行语句
----
}
根据条件判断来决定是否执行大括号内的执行语句。
执行流程在执行while语句时首先判断循环条件如果循环条件为false则直接执行while语句后续的代码如果循环条件为true则执行循环体代码然后再判断循环条件一直到循环条件不成立为止。
=================================================
3.do-while循环语句
do-while语句的语法格式为
do{
循环体
}while循环条件
语法说明在do-while语句中循环体部分是重复执行的代码部分循环条件指循环成立的条件要求循环条件是boolean类型值为true时循环执行否则循环结束最后整个语句以分号结束。
执行流程当执行到do-while语句时首先执行循环体然后再判断循环条件如果循环条件不成立则循环结束如果循环条件成立则继续执行循环体循环体执行完成以后再判断循环条件依次类推。
================================================
4.for 语句循环
(1)语法结构
for(初始化语句;循环条件;步长){
循环体;
}
注意for循环的执行顺序先执行初始化语句;再执行循环条件;
(2)for 语句实例
for (int i = 0; i < 10; i++) {
System.out.println("Java快车");
}
如果测试表达式返回true则执行循环体就是system的输出语句如果测试表达式返回false则整个循环结束然后执行增量表达式。我们称这是第一次循环结束了初始值表达式只执行一次第二次循环从测试表达式开始方法和步骤和第一次一样。循环就这样一次一次地进行直到测试表达式返回false整个循环就结束了这个for语句的生命周期就结束了。
(3)break、continue
例
for(int i=1;i<=5;i++){
if(i == 3){
continue;
}
System.out.println(i);
}
=======================================================
for(;;){
System.out.println("是否继续Y/N");
char input = new Scanner(System.in).next().charAt(0);
if(input == ‘N‘){
break;
}
}
break:停止当前循环未执行的循环体以及循环次数都不再执行
continue:停止本次循环本次未执行的循环体不再执行会直接进入下次循环
====================================================
5.for 语句的嵌套
(1)for(初始化语句;循环条件;步长){
[循环体];
for(初始化语句;循环条件;步长){
循环体;
} }
(2)for(初始化语句;循环条件;步长){
[循环体];
if子句;
}
=======================================================
6.控制台输入语句--输入函数Scanner
(1)使用Scanner类首先要导入 import java.util.Scanner;
(2)然后建立对象 Scanner scan = new Scanner(System.in);
(3)构造新的对象并为此对象安排内存空间。
一般的模式多为
(4)new 构造对象类型(形参);如果在对象声明的时候进行赋值则叫对象的初始 化。
(5)一般模式为 对象类型 对象名称=new 构造对象类型(形参);
然后就可以接收控制台输入的各种数据类型了。
比如:
String s = scan.next();//接收控制台输入的各种数据类型
String s = scan.nextLine();//接收控制台输入的各种数据类型
next和nextLine的区别是前者接收的字符串到第一个空格为止后者接收的字符串可以包含空格到回车为止
double d = scan.nextDouble();
如果想输入一个字符可以利用字符串的charAt(index)方法。
例如char ch = scan.next().charAt(0);
也可以直接写作 char ch = new Scanner(System.in).next().charAt(0);
**-----数据类型的输入类型-----**
整型 int a=new Scanner(System.in).nextInt();
浮点 float b=new Scanner(System.in).nextFloat();
浮点 double b=new Scanner(System.in).nextDouble();
字符串String s=new Scanner(System.in).next();
String s=new Scanner(System.in).nextLine();
得到字符的方法
char ch = new Scanner(System.in).next().charAt(0);
=========================================================
7.部分常用的数学函数
(1)System.out.println(Math.PI);//圆周率
(2)System.out.println(Math.abs(-5));//得到数字的绝对值
(3)System.out.println(Math.ceil(5.0));//得到向上取整的double值
(4)System.out.println(Math.floor(5.9));//得到向下取整的double值
(5)System.out.println(Math.max(5, 6));
(6)System.out.println(Math.pow(3, 2));//求m的n次方
(7)System.out.println(Math.sqrt(16));//开方
(8)System.out.println((int)(Math.random() * 10));//随机得到0~1之间的小 数
//得到一定范围的随机整数2~99
//Math.random() * (大 - 小 + 1) + 小
(9)int num = (int)(Math.random() * 98 + 2);
========================================================
三、数组
1、概念
指一组数据的集合数组中的每个数据被称为元素。数组中可存放任意类型的数据但同一个数组内的存放的元素类型必须一致。
数组可分为一维数组、多维数组。
================================================
2、数组的定义
(1)数据类型 数组名[] = new 数据类型[长度];
注意数组在使用前必须定义长度
使用数组名[下标] = 值;
(2)数据类型 数组名[] = {值1,值2,值3...};
定义数组时给定值那么数组的长度由值的个数决定
(3)数组类型 数组名[] = new 数据类型[]{值1,值2,值3...};
注数组的下标的从0开始的同一数组的类型中各单元值必须相同。
数组中的每个元素都有一个索引也称为角标通过角标访问数组中元素数组中最小的索引为0最大为“数组的长度减1”即“length-1”
注数组的索引范围为0---length-1
=================================================
3、演示
Public class C{
Public static void main(String[] args){
Int [] arr; //声明变量====int[] arr=new int[3]
Arr=new int[3]; //创建数组对象
System.out.println(“arr[0]=”+arr[0]); //通过角标访问数组中第1个元素
System.out.println(“arr[1]=”+arr[1]); //访问数组中第2个元素
System.out.println(“arr[2]=“+arr[1]); //访问数组中第3个元素
System.out.println(“数组的长度为”+arr.length);
}
}
//程序中可通过“数组名.length”获取数组的长度即元素的个数。
注从打印结果可以看出数组中的三个元素初始值都为0当数组被成功创建后数 组中元素会自动赋予一个默认值根据元素类型的不同默认初始值也不尽相 同。若不想使用默认值可直接赋值。
**-----数组-----**
Int[] arr=new int[3];//定义可以存储3个整数的数组
-----arr[0]=0;//为第一个元素赋值为0
-----arr[1]=1;//为第二个元素赋值为1
-----arr[2]=2;//位第三个元素赋值为2
System.out.println(“arr[0]=”+arr[0]);
System.out.println(“arr[1]=”+arr[1]);
System.out.println(“arr[2]=“+arr[2]);
System.out.println(“数组的长度=”arr.length);
=================================================
4、数组的静动态声明并使用
(1)动态初始化当只指定数组长度时系统自动为元素赋初值的方式。
(2)静态初始化(常用)定义数组的同时就为数组的每个元素赋值。方式如下
*、类型[] 数组名=new 类型[]{1,2,3,4,…..};
例int[] stu=new int[]{1,2,3,4}
**、类型[] 数组名={1,2,3,4,……};
例int[] stu={1,2,3,4};
=================================================
5、数组的常见操作
(1)数组的遍历
依次访问数组的每一个元素。
Int[] arr={1,2,3,4}; //定义数组
----for(int i=0;i<=arr.length;i++){
//使用for循环遍历数组的元素
System.out.println(“arr[i]=”arr[i]);
//通过索引访问元素
}
(2)最值得获取
求数组最大值getMax()方法。该方法中定义了一个临时变量max用于记住数组的 最大值。
(3)数组的排序
操作数组时经常需要对数组中的元素进行排序。比较常见的排序方式有冒泡排序、查找排序等。
==================================================
本文出自 “我是宁采臣” 博客,谢绝转载!
Java--分支语句、循环、数组、控制台输入语句、常用数学函数