所有程序都可以被理解为读一点输入、做一点计算、最后做一点输出。
学计算机有个很大的好处,所有事就尽管在计算机上去尝试好了,最严重的后果不过是电脑死机。所以放心大胆地去试、去揣摩、去想各种可能的做法。
一、比较
1.
package hello;
import java.io.InputStream;
import java.util.Scanner;
public class Helloworld {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请投币:");
Scanner in = new Scanner(System.in);
int amount = 0;
amount = in.nextInt();
System.out.println(amount>=10);
System.out.println("##########");
System.out.println("票价10元");
System.out.println("##########");
System.out.println("找零:"+(amount-10)+"元");
}
}
2.关系运算
(1)概念
(2)优先级
①运算关系运算符的优先级比算术运算的优先级低,但比赋值运算的优先级高
②判断是否相等的==与!=比其他的关系运算的优先级低,而连续的运算关系运算是从左往右进行的
③true或false与数字是不能够做任何运算的,true与false可以做相等比较但没啥意思,true与false也没有谁大谁小的关系
(3)5 == 5.0 ==> true
1.0 == 0.1+0.1+0.1+0.1+0.1 … +0.1(等于0.999999在计算机内部浮点数运算有误差) ==>false
判断浮点数是否相等:
二、判断
1.if语句
(1)if后面无分号
(2)eclipse的debug模式
2.判断语句
(1)流程图
(2)if-else语句
package hello;
import java.io.InputStream;
import java.util.Scanner;
public class Helloworld {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入两个数:");
Scanner in = new Scanner(System.in);
int x = in.nextInt();
int y = in.nextInt();
int max = 0;
if (x>=y) {
max = x;
}
else {
max = y;
}
System.out.println("最大值为"+max);
}
}
三、分支
1.嵌套与级联的判断
(1)嵌套的判断:当if的条件满足或不满足是执行的语句也是一套if-else或单个if语句,这就是嵌套的if语句
package hello;
import java.io.InputStream;
import java.util.Scanner;
public class Helloworld {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入三个数:");
Scanner in = new Scanner(System.in);
int x = in.nextInt();
int y = in.nextInt();
int z = in.nextInt();
int max = 0;
if (x>=y) {
if (x>=z) {
max = x;
}
else
max = z;
}
else {
if (y>=z) {
max = y;
}
else {
max = z;
}
}
System.out.println("最大值为"+max);
}
}
tips:if、else即使后面只有一条语句也加上一个大括号
(2)级联:(else与else对齐)
if ()
stl;
else if ()
stl;
else if ()
stl;
else
stl;
注意:左边这种单一出口的更好
2.多路分支
package hello;
import java.io.InputStream;
import java.util.Scanner;
public class Helloworld {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int type = in.nextInt();
switch (type) {
case 1:
case 2:
System.out.println("您好");
break;
case 3:
System.out.println("早上好");
case 4:
System.out.println("晚上好");
break;
default:
System.out.println("a?");
break;
}
}
}
当满足case3条件时,因为代码中case3没有break,所以执行完后面的语句代码会越过case4的边界继续执行后面的语句
四、判断语句常见错误
1.忘掉大括号
即使是有缩进,但缩进对java来说没有意义,有意义的只有大括号。
所以永远在if和else后面加一对大括号,即使后面只跟了一条语句
2.if后面加分号
会使if失去判断功能
3.错误使用==和=
if只要求()里面是0和非0
4.代码风格
(1)if和else后面必须加上一个大括号形成一个语句块
(2)大括号内的语句必须缩进一个tab的位置