当前位置:编程学习 > JAVA >>

java新手,看一下这个小问题

import java.util.Scanner;
public class s{
public static void main(String [] args){
s hao=new s();
s.max();

}
int void max(int a,int b, int c, int t){
Scanner q=new Scanner(System.in);
System.out.print("请输入您的数字");
a=q.nextInt();
b=q.nextInt();
c=q.nextInt();
if(a<b){
t=a;a=b;b=t;
}
if(a<c){
t=a;a=c;c=t;
}
if(b<c){
t=b;b=c;c=t;
}
System.out.println("最大数字依次是:"+a+"/t"+b+"/t"+c);
}
这个哪里有问题啊,

现在自学java
现在都不知道从哪里学好了,
java 常见类库怎么学啊?
流程控制不知道怎么搞?
迷茫ing  java --------------------编程问答-------------------- --------------------编程问答-------------------- 接楼上,
s hao=new s();
s.max();

1.s从规范来讲,最好大写
2.max不是static函数,不可以这么写,改为hao.max

另外,max方法中,int t最好声明在method内,不要声明在argument中。(还有就是楼上说的返回类型,只能一个)

最后,打开的scanner没有关闭,用q.close()关闭。

我把你的代码改改发上来吧 --------------------编程问答-------------------- Java函数定义: 返回值类型  函数名(形参列表)
int void max(int a,int b, int c, int t)

这一句中有两中返回类型啦大哥,按你程序的意思函数体本意是直接输出最大值,所以去掉void就OK啦
推荐你看《JAVA2核心技术第1卷.基础知识7th.pdf》 --------------------编程问答-------------------- 改了两个错误,可还是不行啊 --------------------编程问答-------------------- 简单的修改了一下,你对比一下。
import java.util.Scanner;

public class s {
public static void main(String [] args){
Scanner in  = new Scanner(System.in);

System.out.println("Enter three number,please");
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();

max(a,b,c);
in.close();
}
/*----max method part----*/
static void max(int a,int b,int c){
int t = 0;
if(a<b){
t=a;a=b;b=t;
}
if(a<c){
t=a;a=c;c=t;
}
if(b<c){
t=b;b=c;c=t;
}
System.out.println("Sorted Order : "+a+" "+b+" "+c);
}
}


Enter three number,please
3 4 5
Sorted Order : 5 4 3


还有一个错误就是你调用max没有传参。

--------------------编程问答--------------------      Scanner in  = new Scanner(System.in);
                 
                System.out.println("Enter three number,please");
                int a = in.nextInt();
                int b = in.nextInt();
                int c = in.nextInt();
为什么这个不可以放在max方法下面 --------------------编程问答--------------------
引用 6 楼 u011747152 的回复:
     Scanner in  = new Scanner(System.in);
                 
                System.out.println("Enter three number,please");
                int a = in.nextInt();
                int b = in.nextInt();
                int c = in.nextInt();
为什么这个不可以放在max方法下面


输入输出口放在main函数中。
这里涉及到多线程以及JVM编译的结束标志问题不多解释了。

你想放在max中也可以,在5楼代码中,12行改为:max();
16行括号内函数变量删掉
8,9,10行代码放在int t=0;下面


--------------------编程问答-------------------- s.max()与int void max(int a,int b, int c, int t)不匹配,还有去掉int ,max(int a,int b,int c) --------------------编程问答-------------------- s.max() 调用的是 max()方法,你根本就没有这个方法,你有的是max(int a,int b,int c,int t)方法,而且你的t作为一个中转的 属性,完全可以在方法里边定义 int t=0;不需要方法传进去 --------------------编程问答-------------------- 话说用Scanner in  = new Scanner(System.in); 
int a = in.nextInt(); 
可以读入其他类型的数据吗? --------------------编程问答--------------------
引用 10 楼 sunflower93 的回复:
话说用Scanner in  = new Scanner(System.in); 
int a = in.nextInt(); 
可以读入其他类型的数据吗?

可以 你输入在控制台的对象 都可以读入
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,