A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gongyanfa123   /  2015-7-3 23:10  /  1943 人查看  /  33 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void leftshif中void表示没有返回值,且leftshift中的成员变量为局部变量,主函数中的i的值是没有变化的!希望能帮助到你
回复 使用道具 举报
看到各位大神的解答,感觉你们都好强啊,压力山大。
回复 使用道具 举报
public class Test1
        {
        public static void leftshift(int i, int j)
                {
                   i+=j;
                                   System.out.println(i);
        }
        public static void main(String args[])
                {
                int i = 4, j = 2;
                leftshift(i, j);
                 
        }
}
回复 使用道具 举报

class OperationDemo
{
      public static int leftshift(int i, int j) {
                   i+=j;
                                   return i;
        }
        public static void main(String args[]) {
                int i = 4, j = 2;
                i=leftshift(i, j);
                System.out.println(i);
        }
}
这样也可以
回复 使用道具 举报
变量生命周期的问题
回复 使用道具 举报
  1. public class Test1 {
  2.         public static void leftshift(int i, int j) {
  3.                 i+=j;
  4.                 System.out.println(i);
  5.         }
  6.        
  7.         public static void main(String args[]) {
  8.                 int i = 4, j = 2;
  9.                 leftshift(i, j);  
  10.         }
  11. }
复制代码


这个结果是6
回复 使用道具 举报
你计算出6,是因为你错误的以为Test1这个方法有返回值,其实他没有返回值,所以呢main函数打印不出局部变量
回复 使用道具 举报
4L说的对。。
回复 使用道具 举报
这个是基本数据类型的作用域问题。方法内的变量只对此方法的作用域内有效,不会影响到main函数内的i与j。
回复 使用道具 举报
传递进去的和你本身的并没有任何关系,你要是想有关系,就必须要加上静态修饰!这样传递的时候就可以保证了!
回复 使用道具 举报
夜写意 发表于 2015-7-6 22:58
这个是基本数据类型的作用域问题。方法内的变量只对此方法的作用域内有效,不会影响到main函数内的i与j。 ...

补充下,如果传过去的是数组,对其的操作是有效的。
回复 使用道具 举报
因为System.out.println(i),这句话只是打印了你初始化为4的i 的值,   leftShift()方法,根本没有返回值,运不运行,对这个结果没有影响..
回复 使用道具 举报
  1. class Test1
  2. {
  3.         public static int leftShift(int i, int j)
  4.         {
  5.                 return i+=j;
  6.         }
  7.         public static void main(String[] args)
  8.         {
  9.                 int i = 4;
  10.                 int j = 2;
  11.                 System.out.println(leftShift(i ,j));
  12.         }
  13. }
复制代码

楼主改成这样,才打印出来的是相加后的结果

回复 使用道具 举报
值没有返回给主函数
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马