简单的java输入输出
一.输出
java的输出有下面三种方式,一一来介绍
1·system.out.println()
要输出的内容放在后面的括号内,输出变量的值直接写变量名,输出字符串用双引号引起来,如果既要输出变量值还要输出字符串,使用加号连接。下面是代码示例(只写主要部分,类和main方法省略)
在这里插入代码片
//打印变量值
int age=18;
string name="张三"
system.out.println(age);
system.out.println(name);
//打印字符串
system.out.println("我叫张三");
//同时打印字符串和变量值
int age1=18;
string name1="张三"
system.out.println("我叫"+name1+","+"我的年龄是"+age1);
下面是代码在idea中的运行结果

这种输出方式自带换行,即把内容打印完之后自动换行,而且打印变量和字符串都很方便,是java中比较常用的输出,还有个细节就是,如果想再输出结果中单独换行,直接写system.out.println()就可以了
2.system.out.print()
这个和上面system.out.println()的唯一区别就是它打印完结果后不会自动换行,
把上面代码中的system.out.println()全部换成system.out.print()
在这里插入代码片
int age=18;
string name="张三"
system.out.print(age);
system.out.print(name);
//打印字符串
system.out.print("我叫张三");
//同时打印字符串和变量值
int age1=18;
string name1="张三"
system.out.print("我叫"+name1+","+"我的年龄是"+age1);
下面是运行结果

我们可以看到所有输出内容都在同一行了,要想达到换行输出的目的还要单独打印换行符,没有上面那个方便
3.system.out.printf()
这种输出方式就和c语言的printf函数一样了,需要占位符,这里就不过多介绍了
二.输入
java的输入是通过用类创建对象,然后调用方法实现的,学习java初期,了解并学会使用scanner类即可,后续还有 bufferedreader 类,
console 类,关于类和对象的概念后续会进行介绍,现在我们先来学习用scanner类进行简单的输入。
现在使用scanner类我们直接记住下面语句
在这里插入代码片 import java.util.scanner; scanner sc=new scanner(system.in);
对于不同的数据,需要调用不同的方法,下面看代码示例
在这里插入代码片
import java.util.scanner;
public static void main(string [] args){
scanner sc=new scanner(system.in);
int num=0;
num=sc.nextint();//整型
double d=0.0;
d=sc.nextdouble();//浮点型
float f=0.0f;
f=sc.nextfloat();//浮点型
}
以此类推,short型用sc.nextshort(),long型用sc.nextlong(),boolean型用sc.nextboolean,
重点说一下string型和char型,char型用sc.next()charat(0),string型用sc.next(),或者sc,nextline()
除了sc.nextline()以换行符(回车)作为结束标志,其余全部已空白字符为结束标志(换行符,空格键,tab键),由此引出来两个注意事项,1:如果输入的字符串里面有空格或者tab键就不能用sc.next(),只能用sc.nextline();2:如果用sc.nextline()输入字符串之前输入了一个回车键(换行符);下面对这两个注意事项进行代码示例
在这里插入代码片 //第一个注意事项 //把zhang san存到字符串变量里面并打印出来 string name1="s"; name1=sc.next(); system.out.println(name1);
下面是在idea中运行的结果

可以看到最后只打印了zhang,而不是zhang san,这就是因为zhang和san之间的空格键告诉sc.next()到这结束了,后面的东西不放到name1这个字符串变量里面,换成sc.nextline()即可解决,运行结果如下

下面来看第二个注意事项
在这里插入代码片 int num=0; string name="s"; num=sc.nextint(); name=sc.nextline();

我们发现输入500之后按下回车程序就直接打印出500了,这就是因为回车键被next.line给读取了,存放到了str里面,因此为避免这种情况出现,我们再str=sc.nextline()前面加入一条sc.nextline()语句即可,下面是加入sc.nextline()语句之后的运行截图

认识java中的方法
其实java中的方法可以理解成c语言中的函数,目的就是把代码模块化,可重复利用。方法体就是函数体,参数的写法也和c语言函数的参数写法一样,方法也有返回值,java方法和c语言函数都有限制符,后续会对java中方法的修饰符做详细介绍,目前我们把所有自定义方法的修饰符全部写成public static。
下面来看一下方法的写法,注意方法是写在类里面的,且java中方法不能嵌套定义,即在一个方法中不能定义另外的方法,只可调用,调用方法和c语言调用函数一样,用方法名调用
1.方法的语法格式
修饰符 返回值类型 方法名(参数列表){
方法体
return 返回值;(void型可以不写### 方法的嵌套调用
写一个add方法,功能是返回两个整数的和
在这里插入代码片
public class test{
public static int add(int a,int b){
return a+b;
}
public static void main(string [] args){
//调用add方法
int ret=add(3,5);
system.out.println(ret);
}
}
运行结果如下

2.方法重载
在介绍方法重载之前我们先看一个引例,一个服装设计师花了三个月设计出来一件版型很好的衣服,服装厂为了盈利,肯定会做出各种尺寸的衣服,那回到java中,我们设计出来了能够计算两个整数的和的add方法,那如果我i们想计算三个整数的和,三个小数的和呢?重新写别的方法吗?那要记住的方法名是不是太多了?看起来有点麻烦,为此java提供了方法重载
所谓方法重载就是一系列的方法的名字都一样,但是它们的参数列表不一样(个数,类型,顺序不同)。下面看代码示例
在这里插入代码片
public class test(){
public static int add(int a,int b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
public static double add(double a,double b,double c){
return a+b+c;
}
public static void main() {
system.out.println(add(3, 5));
system.out.println(add(1, 2, 3));
system.out.println(add(1.1,2.2,3.3));
}
}
运行结果如下

三个名字都为add的方法,由于参数列表的不同,因而实现了不同的功能,这就是方法重载
3.方法的递归
java方法的递归和c语言函数递归一样,只是语法不同而已,这里不再过多赘述递归的定义和递归的注意事项了,直接看代码示例
import java.util.scanner;
//汉诺塔问题,打印出转移过程,并统计挪动了多少次盘子
public class towerofhanoi {
static int count=0;
public static void tower(int n,char source,char mid,char destination){
if(n==0){
return;
}
tower(n-1,source,destination,mid);
system.out.println(source+"->"+n+"->"+destination);
count++;
tower(n-1,mid,source,destination);
}
public static void main(string[] args) {
int n = 0;
char a;
char b;
char c;
scanner sc = new scanner(system.in);
system.out.println("请输入盘子数目和柱子编号,第一个编号对应盘子最初放的位置");
n=sc.nextint();
a=sc.next().charat(0);
b=sc.next().charat(0);
c=sc.next().charat(0);
//调用tower方法,完成汉诺塔问题
tower(n,a,b,c);
system.out.println("所有盘子已转移完毕");
system.out.println("一共挪了"+count+"次盘子");
}
}
下面是输入和执行结果

//递归求汉诺塔的第n项
import java.util.scanner;
public class fib {
public static int fact(int n){
if(n==1||n==2){
return 1;
}else{
return fact(n-1)+fact(n-2);
}
}
public static void main() {
scanner sc = new scanner(system.in);
int n = sc.nextint();
system.out.print("斐波那契数列的第n项是 ");
system.out.println(fact(n));
}
}
下面是输入和执行结果
4.方法的嵌套调用和链式访问
方法的嵌套调用
方法的嵌套调用指的是在一个方法内部调用另一个方法。这种方式可以将复杂任务分解为多个小任务,每个方法负责完成特定的功能,提高代码的可读性和可维护性。
def add(a, b):
return a + b
def multiply(a, b):
return a * b
def calculate(a, b):
# 嵌套调用 add 和 multiply 方法
sum_result = add(a, b)
product_result = multiply(a, b)
return sum_result, product_result
result = calculate(3, 4)
print(result) # 输出 (7, 12)
链式访问
链式访问是指通过连续调用多个方法来实现功能,每个方法的返回值是下一个方法调用的对象。这种方式常见于面向对象编程中,尤其是构建流畅接口(fluent interface)。
class calculator:
def __init__(self, value):
self.value = value
def add(self, num):
self.value += num
return self # 返回 self 以实现链式调用
def multiply(self, num):
self.value *= num
return self
def get_result(self):
return self.value
# 链式调用
result = calculator(5).add(3).multiply(2).get_result()
print(result) # 输出 16
嵌套调用与链式访问的区别
- 嵌套调用:一个方法内部调用其他方法,通常用于分解任务。
- 链式访问:通过返回对象自身(如
self)或其他对象,实现连续调用方法。
实际应用场景
- 嵌套调用:适合将复杂逻辑拆分为多个小方法,便于测试和复用。
- 链式访问:适合构建流畅的 api,例如数据库查询构建器或字符串处理。
# 链式访问的字符串处理示例
text = " hello, world! "
cleaned = text.strip().lower().replace(",", "")
print(cleaned) # 输出 "hello world!"
通过合理使用嵌套调用和链式访问,可以编写出更加清晰、高效的代码。
总结
到此这篇关于java简单的输入和输出、初识方法的文章就介绍到这了,更多相关java输入和输出、初识方法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论