-
运算符深入学习
-
控制台输入scanner语句
-
if else ,switch语句
1,运算符
算术运算符;
a;“+” 加:同时也是字符串的连接运算符。
除法(/):
b; 整数/整数=整数,是截断取整,而不是四舍五入取整。
c;整数不能除0。0.0除0.0结果为NaN 非数。
d;当除数或者被除数中有一个为浮点型的,那么结果就是自然除法的结果。
e;如果此时除数为0或者0.0,那么结果为正无穷或者负无穷。
取余;
a,两个整数相取时,第二个数不能是0。
b,一个或两个为浮点数,第二个数为0或者0.0时,结果为NaN。
c,第一个数为0或0.0时,结果为0.0。
自增自减;
+ +自增: 操作数的值增加1 B=20 B++ 或 ++B 等于 21
- -自减: 操作数的值减少1 B=20 B-- 或 --B 等于 19
逻辑运算符;
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真,当第左边为false时,右边的表达式则不会进行运算。
&(不短路与):不短路与,作用与&&相同,但不会短路,不论左边为true或者false,右边的表达式都会进行运算。
^(异或):当运算符两边布尔值相同为false,当运算符两边布尔值不同为true。
||(短路或):左右操作数任意一个为true,结果都为true,如果左边操作数为true,右边表达式将不会进行运算。两边为false时,结果才为false。
|(不短路或):不论左边为true或者false,右边的表达式都会进行运算。
2,Scanner语句;
java中的输入流
a、导包;
Scanner类在java.util包下。
import java.util.Scanner;
注:导包的语句必须出现在类定义的上边
b、创建键盘输入对象;
Scanner sc = new Scanner(System.in);
注:上面这个格式里面,只有sc是变量名,可以变,其他的都不允许变。
c、定义变量接受控制台输入。
按照用户输入的类型分类:
整数:
int num = input.nextInt();
小数:
double num = input.nextDouble();
字符或者字符串
String line = input.nextLine();
或者
String line = input.next();
注:
1.使用键盘输入获取数据之前建议加入提示性语句
2.next系列的方法是阻塞方法,会等待用户的输入,用户输入结束,程序继续执行
3.常错误问题 Java.util.InputMismatchException
异常名称: 输入不匹配异常
产生原因: 输入的类型和接收的类型不匹配
解决办法: 类型匹配
3 ,if else switch.
if -else 语句:单项if、双向if、嵌套if
swith-case 语句:匹配特定值的概念
1, if…语句;
if (关系表达式) {
语句体;
}
执行流程:
a 首先计算关系表达式的值
b 如果关系表达式的值为true就执行语句体
c 如果关系表达式的值为false就不执行语句体
d 继续执行后面的语句内容
2、if…else…语句
if(关系表达式){
语句体1;
else{
语句体2;
}
}
执行流程:
a 首先计算关系表达式的值
b 如果关系表达式的值为true就执行语句体1
c 如果关系表达式的值为false就执行语句体2
d 继续执行后面的语句内容
3、if…else if…else…语句
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
执行流程:
a 首先计算关系表达式1的值
b 如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
c 如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
d ..........
e 如果没有任何关系表达式为true,就执行语句体n+1。
Switch语句;
switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}
1.default就是如果没有符合的case就执行它,default并不是必须的.
2.case后的语句可以不用大括号.
3.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
例;
public class SwitchDemo {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个数字(1-7):");
int weekday = sc.nextInt();
//switch语句实现选择
switch(weekday) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你输入的数字有误");
break;
}
}
}
注;
1、swich(表达式)中表达式的返回值必须是以下几种类型之一:
byte,short,char,int,枚举(jdk1.5),String(jdk1.7)
2、case子句中的值必须是常量,且所有case子句中的值应是不同的;
3、default子句是可任选的,当没有匹配的case时,执行default;
4、break语句用来在执行完一个case分支后使程序跳出swich语句块;如果没有break程序会顺序执行到swich结尾;