会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133532个问题
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 4051楼
Python 全系列/第一阶段:Python入门/面向对象 4053楼
Python 全系列/第一阶段:Python入门/面向对象 4055楼
JAVA 全系列/第五阶段:网页编程和设计/CSS3(旧) 4057楼
WEB前端全系列/第二阶段:JavaScript编程模块/运算符_数据类型和流程循环语句 4058楼

import java.util.Scanner;

public class TestSalary {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("***********我的薪水计算器***********");
        System.out.println("1.输入 88,退出程序\n2.输入 66,计算下一个年薪");
        while(true){
            System.out.println("请输入月薪:");
            int monthSalary = s.nextInt();
            System.out.println("请输入一年几个月薪资:");
            int months = s.nextInt();
            int yearSalary = monthSalary*months; //年薪
            System.out.println("年薪是:"+yearSalary);
            if(yearSalary>=200000){
                System.out.println("恭喜你超越 98%的国人");
            }else if(yearSalary>=100000){
                System.out.println("恭喜你超越 90%的国人");
            }
            System.out.println("输入 88,退出系统;输入 66,继续计算。");
            int comm = s.nextInt();
            if(comm==88){
                System.out.println("系统退出!");
                break;
            }
            if(comm==66) {
                System.out.println("继续计算下一个薪资");
               continue;
            }
        }
    }
}

老师,因为这个循环本身是死循环,跳出这个循环和不跳出这个循环,之后执行结果都一样,是不是continue就可加可不加

JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 4060楼

/**
 * 创建发送消息类
 */

class ClientSend extends Thread {
    private  Socket socket;
    public ClientSend(Socket socket){
        this.socket = socket;
    }
    @Override
    public void run() {
        this.sendMsg();

    }
    /**
     * 发送消息
     */
    private void sendMsg(){
        Scanner scanner = null;
        PrintWriter pw = null;
        try {
            //键盘输入
            scanner = new Scanner(System.in);
            //创建向对方输出消息的流对象
            pw = new PrintWriter(this.socket.getOutputStream());
            while (true){
                String msg = scanner.nextLine();
                if ("exit".equals(msg)){
                    break;
                }
                pw.println(msg);
                pw.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (pw != null){
                pw.close();
            }
            if (scanner != null){
                scanner.close();
            }
            if(this.socket!=null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

/**
 * 创建接收消息线程类
 */
class ClientReceive extends Thread {
    private Socket socket;
    public ClientReceive(Socket socket){
        this.socket = socket;
    }
    @Override
    public void run() {

    }
    /**
     * 接收消息的方法
     */
    private void receiveMsg(){
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
            while (true){
                String msg = br.readLine();
                System.out.println("他说: " +msg );

            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

public class PointSocketClient {
    public static void main(String[] args)  {

        try {
            Socket socket = new Socket("127.0.0.1",8888);
            System.out.println("连接成功");
            new ClientSend(socket).start();
            new ClientReceive(socket).start();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
}
/**
 * 创建发送消息类
 */

class Send extends Thread{
    private  Socket socket;
    public Send(Socket socket){

        this.socket = socket;
    }
    @Override
    public void run() {
        this.sendMsg();

    }

    /**
     * 发送消息
     */
    private void sendMsg(){
        Scanner scanner = null;
        PrintWriter pw = null;
        try {
            //键盘输入
            scanner = new Scanner(System.in);
            //创建向对方输出消息的流对象
            pw = new PrintWriter(this.socket.getOutputStream());
            while (true){
                String msg = scanner.nextLine();
                if ("exit".equals(msg)){
                    break;
                }
                pw.println(msg);
                pw.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (pw != null){
                pw.close();
            }
            if (scanner != null){
                scanner.close();
            }
            if(this.socket!=null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
/**
 * 创建接收消息线程类
 */
class Receive extends Thread{
    private  Socket socket;

    public Receive(Socket socket){
        this.socket = socket;
    }

    @Override
    public void run() {
        this.receiveMsg();

    }
    /**
     * 接收消息的方法
     */
    private void receiveMsg(){
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
            while (true){
                String msg = br.readLine();
                System.out.println("他说: " +msg );

            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
public class PointSocketServer {
    public static void main(String[] args) {
        ServerSocket serverSocket = null;
        try {
            serverSocket =new ServerSocket(8888);
            System.out.println("服务器启动等待连接.....");
            Socket socket = serverSocket.accept();
            System.out.println("连接成功");
            new Send(socket).start();
            new Receive(socket).start();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if (serverSocket != null){
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

老师我这个代码只有客户端给服务端发消息的收回会输出

服务端给客户端发消息时没有反应,麻烦老师看下

JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 4061楼

变量定义.删除.png

Python 全系列/第一阶段:Python入门/编程基本概念 4062楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 4063楼

/**
 * 测试方法的使用
 * @author yingh
 *
 */
public class TestMethod {
	public static void printSxt() {
		System.out.println("hahaaha1!");
		System.out.println("hahaaha2!");
		System.out.println("hahaaha3!");
	}
	
	int add(int a, int b, int c) {
		int sum=0;
		sum = a+b+c;
		System.out.println(sum);
		return sum;//1 return 的2个作用:1.结束方法的运行。2 返回值    void 是什么都不返回, 但是如果返回了值,则需要将void改为int
	}
	public static int add(int a, int b) {//public static 加入之后就不需要通过对象来调用了
		int sum=0;
		sum = a+b;
		//System.out.println(sum);
		return sum;
	}
	public static void main(String[] args) {
		//1 通过对象调用方法
		TestMethod tm= new TestMethod();
		printSxt();
		tm.add(5, 6, 7);
		int c=tm.add(6, 6, 10)+1000;//1如果有确切的返回值则可以直接计算, 形参与实参必须类型匹配 ,如double 
		System.out.println(add(1,2));
		System.out.println(c);
		
		
	}
}

问题1:老师,请问我这个输出为什么会有个22?我看了一下

int c=tm.add(6, 6, 10)+1000;

这个语句我并没有输出,但是好像自动默认用对象直接调用了,请问这个如何避免呢?

问题2:在一个方法中,如果我

System.out.println(sum);
return sum;

进行了如上操作,我想问的是如果在方法里不进行输出操作,直接return的话,那么在main函数中要想输出的话就必须用System.out.println(...)来输出是不是?

如果在方法中写了输出操作,静态方法就在main函数中直接调用即可输出结果,非静态方法通过对象调用就可以输出结果,就不需要再写一个System.out.println()了?

JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 4064楼
Python 全系列/第十一阶段:重量级Web框架-Django/Django初级 4065楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637