流程控制+Java方法(含义→调用)
流程控制
用户交互Scanner
java.util.Scanner是Java5的新特征,运用Scanner类来获取用户输入
Scanner s = new Scanner(System.in);
输入字符串
Scanner类的next()和nextLine()获取输入的字符串
读取前一般需要用hasNext()和·hasNextLine()判断是否还有输入数据
Scanner s = new Scanner(System.in);
//判断用户有没有输入字符串
if(scanner.hasNext()){
//next()方法接收
String str = scanner.next();
System.out.println("输出的内容"+str);
}
//IO流的类不关闭就会一直占用资源
scanner.close();
next()
1、一定要读取到有效字符后才可以结束输入
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
4、next() 不能得到带有空格的字符串.
nextLine()
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符
2、可以获得空白
输入数据
Scanner s = new Scanner(System.in);
//从键盘接收数据
int i = 0;//小数同理
if(scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("输出的数据"+i);
}else{
System.out.println("输入的不是整数!")
}
scanner.close();
顺序结构
顺序结构是最简单的算法结构,从上到下进行
选择结构
if单选择结构
if(布尔表达式){
//如果为true将执行的语句
}
if双选择结构
if(布尔表达式){
//如果为true将执行的语句
}else{
//如果为false将执行的语句
}
if多选择结构
if(布尔表达式 1){
//如果为1的值将执行的语句
}else if(布尔表达式 2){
//如果为2的值将执行的语句
}else if(布尔表达式 3){
//如果为3的值将执行的语句
}else{
//如果以上都不满足将执行的语句
}
嵌套的if结构
if(布尔表达式 1){
//如果为1的值将执行的语句
if(布尔表达式 2){
//如果为2的值将执行的语句
}
}
如寻找一个数,在1-100之间
二分法
switch多选择结构
switch case 语句判断某个变量与一系列值中某个值是否相等,每个值为一个分支
switch(expression){
case value:
//语句
break;//可选,用break来防止case穿透
case value:
//语句
break;//可选
//你可以有任意数量的case语句
default://可选
//语句
}
switch语句中的变量类型可以是
-
switch 语句中的变量类型可以是:byte, short、int 或者 char
-
从jdk7开始,switch 支持字符串 String 类型了
-
同时 case 标签必须为字符串常量或字面量。
反编译,可以用idea看生成后的源码
循环结构
while循环
do...while循环
for循环
在Java5中引入主要用于数组的增强型for循环
while循环
while(布尔表达式){
//循环内容
}
只要表达式为true,循环就会一直执行下去
大多数情况让循环停下,需要一个让表达式失效的方式停止;少部分情况需要循环一直执行,比如服务器的请求响应监听等
循环条件一直为true则会造成无限循环(死循环),正常时应该避免
do...while循环
不满足while语句的条件,则不能进入循环。就算不满足也至少执行一次
do{
//代码语句
}while(布尔表达式);
while是先判断后执行,do...while是先执行后判断
for循环
支持迭代的一种通用结构,是最有效最灵活的循环结构
循环次数在执行前确定
for(初始化:可为空语句;布尔表达式;更新){
//代码结构
}
-
输出九九乘法表
-
增强for循环
java5引入用于数组或集合的增强型for循环
for(声明语句 : 表达式){
//代码语言
}
int[] numbers = {10,20,30,40,50};
//遍历数组的元素
for(int x:numbers){
System.out.printin(x);
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:需要访问的数组名或返回值为数组的方法
break continue
break:在任何循环语句的主体部分,用于强行跳出循环,不执行循环中剩下的语句(可用在switch语句中)
continue:在循环语句体中,用与中止某次循环。跳过循环体中未执行的,接着进行下一次是否循环判定(可用于跳过某次)
goto关键字(不用掌握:
是Java中保留字,但在语言中没有正式使用。但有类似的,如带标签的break和continue
标签:标识符后有冒号,如label:
对于Java来说唯一用到标签的位置在循环语句前,用于嵌套另一个循环
Java方法
何谓方法
Java方法是语句的集合,在一起执行一个功能
- 解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,其他地方被引用
设计原则:方法是实现某个功能的语句块的集合,设计师要保持方法的原子性。即一个方法只完成一个功能。
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;//存在返回值时
}
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型:方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下关键字void
方法名:是方法的实际名称。方法名和参数表共同构成方法签名
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数
- 形式参数:方法被调用时用于接收外界输入的数据
- 实参:方法调用时实际传给方法的数据
方法体:方法体包含具体的语句,定义方法的功能。
方法的调用
对象名.方法名(实参列表)
Java是值传递

浙公网安备 33010602011771号