java中return的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中return的用法相关的知识,希望对你有一定的参考价值。

public class Demo
public static void main(String[] args)

System.out.println(test());

public static int test()
int i=0;
try
i++;
return i;
catch (Exception e)
e.printStackTrace();//打印信息

finally
i++;


return i;


为什么输出1?

java中return的作用如下:

根据《Java编程思想:第四版》4.5节中介绍:return语句作为一个无条件的分支,无需判断条件即可发生。return语句主要有两个用途:一方面用来表示一个方法返回的值(假定没有void返回值),另一方面是指它导致该方法退出,并返回那个值。

根据方法的定义,每一个方法都有返回类型,该类型可以是基本类型,也可以是对象类型,同时每个方法都必须有个结束标志,因此,return起到了这个作用。在返回类型为void的方法里面,有个隐含的return语句,因此,在void方法里面可以省略不写。

拓展资料:

一、return语句和其他控制结束语句的区别如下:

Java中结束语句主要有四类:return,break,continue以及goto。但是goto不常用,所有此文不对此讨论。

1、return语句:是指结束该方法,继续执行方法后的语句。

2、break语句:是指在循环中直接退出循环语句(for,while,do-while,foreach),break之后的循环体里面的语句也执行。

3、continue语句:是指在循环中中断该次循环语句(for,while,do-while,foreach),本次循环体中的continue之后语句不执行,直接跳到下次循环。

二、return在try-catch-finally语句中的使用,若在 try或catch语句里面有return语句,finally语句和return语句的执行顺序问题:

1、若有finally语句,则无论如何,都会执行该语句,在try或catch中的return语句会将它的返回值压入栈内,然后执行finally语句,当finally执行完成后,若finally语句里有return语句,则执行return语句并结束。

2、若finally没有return语句,则返回被保存的栈里的return语句,再执行。然而,在压栈时候,要注意压入栈内的是什么东西,是值本身还是引用,若是引用则引用的值会改变,若是变量值,则不会改变。

参考技术A 这个涉及到了jvm的实现机制.在try中遇到return前,i的值是1,这时在变量i中是1,并且把1这个值复制放入到了准备输出的栈顶,这时到finally,在这里对于变量i进行了加1,但是在栈顶的值却没有变,所以return的就是1了 参考技术B 哈哈 你这个题非常有意思。

因为你在定义一个int i=0;
所以当你
try
i++;
return i;

执行到这里 它return了 所以 i又等于0了,然后它就在finnally里加1了。
你把 return i; 这个注释掉就可以得到你喜欢的2了。
//先输出2 然后输出1
public static int test()

int i = 0;
try

i++;
return i;

catch (Exception e)

//e.Message;//打印信息

finally

i++;
Console.WriteLine("Finally:" + i);

return i;


//输出的都是2
public static int test()

int i = 0;
try

i++;
//return i;

catch (Exception e)

//e.Message;//打印信息

finally

i++;
Console.WriteLine("Finally:" + i);

return i;


有问题在讨论。
参考技术C 因为它执行return i;时,它返回的是1,之后再改变i的值也没用
之后执行finally里的i++;虽然i是变成了2,但是和return 里的那个1没有关联
但是finally里语句确时执行了,你在finally里加一个输出语句 ,输出一个不
你就会看见i的确变成2了本回答被提问者采纳
参考技术D Java中的return语句总是和方法有密切关系,return语句总是用在方法中,有两个作用,一个是返回方法指定类型的值(这个值总是确定的),一个是结束方法的执行(仅仅一个return语句)。
return语句用在非void返回值类型的方法中,不但能返回基本类型,还可以返回(包括用户自定义类的)对象。
return可以写在方法的任意位置,但必须保证满足几个条件:

1:每个有返回值的方法中每条路径都有return

2 :return后不应有代码,因此此处代码不会被执行
3:在try-catch-finally结构中finally先于return执行

4:只有一种情况return不执行,即代码中包含System.exit(1);

Scanner在java中有啥用法怎么用

举个例子吧。我是初学者对这些文字没有非常具体的感觉

1、首先在一个java工程下创建一个类名的ScannerDemo的类。

2、然后创建一个Scanner类对象,让它接收从键盘输入的数据。

3、这里利用的nextLine方法接收字符串。next方法其实也是可以获取字符串的。但是next不能获取空格,比如输入Hello World,使用next方法只会得到Hello;而使用nextLine方法会得到完整的Hello World;因为nextLine方法是以回车键为结束标识的。

4、在程序窗口空白处,点击右键,选择Run As ——Java Application。

5、这时在控制台中,输入字符串,按回车。可以看到利用Scanner类的nextLine成功接收到字符串。

6、当然Scanner除能接收字符串之外,像整数,浮点数也是可以接收的,都有对应的方法。下面就以接收整数为例,其他类型的也差不多,可以自己尝试一下。

7、运行查看结果,可以看到nextInt()只能接收整数。想要接收其他类型的数据就得用其他方法了。

扩展资料:

Scanner类常用方法

1、String next():接收控制台输入的字符串(备注:不能将空格作为字符串接收);

2、String nextLine():接收控制台输入的字符串;

3、int nextInt():接收控制台输入的int类型的数据;

4、double nextDouble:接收控制台输入的double 类型的数据;

5、boolean nextBoolean():接收控制台输入的boolean 类型的数据;

6、输入char类型的数据;

Scanner类没有直接输入char类型的方法,可以通过charAt()方法从next()或nexyLine()获取。

参考资料:百度百科-计算机编程语言

参考技术A

创建 Scanner 对象的基本语法:Scanner s = new Scanner(System.in);

接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据。

一、使用 next 方法:

1、ScannerDemo.java 文件代码:

import java.util.Scanner;

public class ScannerDemo
public static void main(String[] args)
Scanner scan = new Scanner(System.in);        // 从键盘接收数据

// next方式接收字符串
System.out.println("next方式接收:");        // 判断是否还有输入
if (scan.hasNext())
String str1 = scan.next();            System.out.println("输入的数据为:" + str1);        
scan.close();    

2、执行以上程序输出结果为:

$ javac ScannerDemo.java

$ java ScannerDemonext方式接收:runoob com输入的数据为:runoob

二、使用 nextLine 方法:

1、ScannerDemo.java 文件代码:

import java.util.Scanner;
public class ScannerDemo
public static void main(String[] args)
Scanner scan = new Scanner(System.in);        // 从键盘接收数据

// nextLine方式接收字符串
System.out.println("nextLine方式接收:");        // 判断是否还有输入
if (scan.hasNextLine())
String str2 = scan.nextLine();            System.out.println("输入的数据为:" + str2);        
scan.close();    

2、执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemonextLine方式接收:runoob com输入的数据为:runoob com

扩展资料:

Scanner:使用该方法的java类文档前需加语句“ import java.util.Scanner; ”。一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

扫描器所使用的默认空白分隔符通过 Character.isWhitespace 来识别。不管以前是否更改,reset() 方法将把扫描器分隔符的值重置为默认空白分隔符。

参考资料:

Scanner-百度百科

参考技术B

用法:

1、Scanner nextInt()只读取数值,剩下"\\n"还没有读取,并将cursor放在本行中。

2、next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。

3、nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。

4、在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。

例如:

1、代码如下:

public class NextTest  

public static void main(String[] args)  

String s1,s2;  

Scanner sc=new Scanner(System.in);  

System.out.print("请输入第一个字符串:");  

s1=sc.next();  

sc.nextLine();

System.out.print("请输入第二个字符串:");  

s2=sc.nextLine();  

System.out.println("输入的字符串是:"+s1+" "+s2);  

 

 

2、运行结果:

请输入第一个字符串:home 

请输入第二个字符串:work 

输入的字符串是:home work

扩展资料:

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

例如:

1、以下代码使用户能够从 System.in 中读取一个数:

Scanner sc = new Scanner(System.in);

int i = sc.nextInt();

2、以下代码使 long 类型可以通过 myNumbers 文件中的项分配:

Scanner sc = new Scanner(new File("myNumbers"));

while (sc.hasNextLong())

long aLong = sc.nextLong();

参考资料来源:百度百科—Scanner

参考技术C public final class Scanner

extends Object
implements Iterator<String>
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
例如,以下代码使用户能够从 System.in 中读取一个数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

再看一个例子,以下代码使 long 类型可以通过 myNumbers 文件中的项分配:
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong())
long aLong = sc.nextLong();


扫描器还可以使用不同于空白的分隔符。下面是从一个字符串读取若干项的例子:
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();

输出为:
1
2
red
blue

以下代码使用正则表达式同时解析所有的 4 个标记,并可以产生与上例相同的输出结果:
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input);
s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
MatchResult result = s.match();
for (int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i));
s.close();
参考技术D Scanner input = new Scanner(System.in)

首先,你的.java文件中必须包含
import java.util.Scanner ; 或 import java.util.*;
才能使用这句,因为要用到Scanner

Scanner对象是可以 读取控制台的输入

Scanner input = new Scanner();
这是一般的对象创建方法,你应该懂吧.

加了一个对象System.in参数,表示传递的是键盘的输入,懂了吧? (不懂就去把对象和参数传递看懂来.)

就是说Scanner类的这个input对象可以调用键盘上输入的东西,

比如 String name=input.nextLine();
表示你在命令行输入的下一行字符串 它被存放在name变量里本回答被提问者采纳

以上是关于java中return的用法的主要内容,如果未能解决你的问题,请参考以下文章

Python中的return的用法?

java中return的用法

Java Script 里return的用法和意思

java中return的作用?

java中return一个Object

java中return一个Object