黑马程序员技术交流社区

标题: 入学第三天三元运算符另外用,处键盘录入,变量作用域 [打印本页]

作者: wangmiaosen    时间: 2015-12-16 10:12
标题: 入学第三天三元运算符另外用,处键盘录入,变量作用域
入学第三天,今天学到的新知识有点生僻,我发现,我光发这种生僻知识。
1.三元运算符也可以操作字符串,比如String s = (1 == 9)?"123":"abc";打印s则输出abc,注意加双引号。
2.视频上讲的键盘录入说的是录入整数,还可以录入字符串并进行操作,下边是我写的一个程序,小白们,可以写给自己的女朋友啊,哄哄她们开心import java.util.Scanner;
class Demo {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个人名");
                String name = sc.nextLine();
                switch (name){
                case "瑞瑞":
                System.out.println("我爱你");
                break;
                default :
                System.out.println("不看一眼");
                }
                System.out.println("再输入一个人名");
                String name3 = sc.nextLine();
                switch (name3){
                case "瑞瑞":
                System.out.println("我爱你");
                break;
                default :
                System.out.println("不看一眼");
                }
        }
}
跟整数类型不一样的是,类型变成String,nextInt();变成nextLine();
3.import java.util.Scanner;
class Demo {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个整数");
                int x = sc.nextInt();
                int y;
                if (x >=3){
                        y = x + 1;
                }else if ( x > -1 && x < 3){
                        y = x +8;
                }
                else if (x <=-1){
                        y = x - 1;
                }
                System.out.println(y);
        }
}
像这种区间的写法,如果都用else if 来表示,那么会报错,因为,int y 没有初始化,很有可能有取不到的范围。解决方法是,要么初始化y,要么,把最后一个else if 改成else;
4.if控制一句话时,一般,大括号可以去掉,但是不建议去掉,可能会发生意想不到的意外,如:

class Demo {
        public static void main(String[] args) {
                int y = 0;
                if (y < 1)
                int x = y;
                System.out.println(y);
        }
}
因为,int x =y;是两句话,一是声明,二是赋值,if只控制一句,所以,报错。

5.变量的作用域问:

class Demo {
        public static void main(String[] args) {
                int y = 0;
                {
                        int x = 1;
                        System.out.println(x);
                }
                        y = x;
                        System.out.println(y);
        }
}
会报错,x找不到符号,因为x只在上一个大括号中有效,因为x定义在了那儿。
6.定义变量:

class Demo {
        public static void main(String[] args) {
                int x = z = y = 5;

                        System.out.println(y);
        }
}
这种定义方式也是错的,正确的可以是,int x ,y ,z;x=y=z=5;

累死了,看完有收获的同学,给点鼓励!
作者: fzh945    时间: 2015-12-16 10:27
多谢分享
作者: wangmiaosen    时间: 2015-12-16 10:28
fzh945 发表于 2015-12-16 10:27
多谢分享

分享的同时给自己加深印象
作者: hrfhwy    时间: 2015-12-16 20:38
谢谢的不错,谢谢分享
作者: wangmiaosen    时间: 2015-12-17 00:02
hrfhwy 发表于 2015-12-16 20:38
谢谢的不错,谢谢分享

笔记而已
作者: 意念痴心灬戒贪    时间: 2015-12-17 00:23
多谢分享~!~!
作者: wangmiaosen    时间: 2015-12-17 22:33
意念痴心灬戒贪 发表于 2015-12-17 00:23
多谢分享~!~!

加深印象。。。
作者: 正阳门下    时间: 2015-12-17 22:54
森哥写的好
作者: 牛德阳    时间: 2015-12-17 23:06
楼主学的很扎实
作者: wangmiaosen    时间: 2015-12-17 23:08
正阳门下 发表于 2015-12-17 22:54
森哥写的好

哪位?低着头看不出来是谁啊。。。
作者: wangmiaosen    时间: 2015-12-17 23:16
牛德阳 发表于 2015-12-17 23:06
楼主学的很扎实

只是对笔记进行总结而已
作者: 手有键盘心不慌    时间: 2015-12-17 23:34
学得不错
作者: wangmiaosen    时间: 2015-12-18 22:19
手有键盘心不慌 发表于 2015-12-17 23:34
学得不错

也就一般吧。。。
作者: hxh362805079    时间: 2015-12-18 22:22
谢谢楼主的分享
作者: wangmiaosen    时间: 2015-12-18 23:17
hxh362805079 发表于 2015-12-18 22:22
谢谢楼主的分享

可以看看别的帖子,一起交流交流。。。
作者: 王晓亮    时间: 2015-12-18 23:22
!!!!!!!!
作者: wangmiaosen    时间: 2015-12-18 23:24
王晓亮 发表于 2015-12-18 23:22
!!!!!!!!

过奖了。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2