标题: 入学第三天三元运算符另外用,处键盘录入,变量作用域 [打印本页] 作者: 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;