Java 学习日志 2.1 if 条件选择语句(if switch 四种方法检验成绩状况)

任何一门知识的简历都是在原有知识的基础上开发建立的。

Java继承发扬C++C++继承发扬C语言,C语言继承发扬B语言,B语言继承发扬汇编语言,汇编语言又是建立在数学的分支上。

所以编程语言有很多数学基础。数学学得好,特别是数据结构与算法学的好,更加有助于学习精深编程。

同样我们的说话中也包含了很多逻辑数学知识。

就比如if条件判断语句。

如果(怎么怎么样)则{怎么怎么样;}否则{怎么怎么样;}

If(条件判断){为真则表达式1}else{为假则表达式2}

又因为世上的情况不止一两种,所以进一步:

If(条件判断){为真则表达式1}

else if(条件判断){为真则表达式2}

else if(条件判断){为真则表达式3}

else if(条件判断){为真则表达式3}

……

else if(条件判断){为真则表达式n}

else{剩余所有情况下执行则表达式n+1}

 

 

 

 

public static void main(String[] args) {

 

Scanner in = new Scanner(System.in);

System.out.println("请输入成绩:");

int score = in.nextInt();

if (score > 100 || score < 0) {

System.out.println("成绩输入有误,请重新输入");

}

if (score >= 90 && score <= 100) {

System.out.println("优秀");

 

}

if (score >= 80 && score < 90) {

System.out.println("良好");

 

}

if (score >= 60 && score < 80) {

System.out.println("及格");

 

}

if ( score >= 0&&score < 60) {

System.out.println("不及格");

可以简化为if(){}else if(){} else{}

 

 

public static void main(String[] args) {

 

Scanner in = new Scanner(System.in);

System.out.println("请输入成绩:");

int score = in.nextInt();

if (score > 100 || score < 0) {

System.out.println("成绩输入有误,请重新输入");}

else if(score >= 90 ) {

System.out.println("优秀");

}

else if (score >= 80 ) {

System.out.println("良好");

 

}

else if (score >= 60 ) {

System.out.println("及格");

 

}

else if ( score >= 0) {

System.out.println("不及格");

 

}

}

 

我们还可以继续简化。等号相当于特殊的大于>小于<情况。

如果及格不同的区间转化为几个不同的特定取值。也就是将大小区间转化为等于。

100=>A>=90。这一区间用A代替。

如果等于A,则优秀。

int a=(int)A/10;//a=9or10.

 

90>A>=80

int a=(int)A/10//a=8

 

80>A>=70

int a=(int)A/10//a=7

 

70>A>=60

int a=(int)A/10//a=6

 

 

 

 

代码如下:

public static void main(String[] args) {

 

Scanner in = new Scanner(System.in);

System.out.println("请输入成绩:");

int score = in.nextInt();

int a = (int) score / 10;

 

if (a > 10 || a < 0) {

System.out.println("成绩输入有误,请重新输入");

}

if (a == 10 | a == 9) {

System.out.println("优秀");

} else if (a == 8) {

System.out.println("良好");

 

} else if (a == 7 || a == 6) {

System.out.println("及格");

 

} else if (a>=0&&a<6) {

System.out.println("不及格");

 

}

 

}

//这里面有一个bug,不知道大家注意到没有。我也不知道怎么解决,看到家能否找到。提示一下:是负数取值区间的。

 

 

对于这种特殊的情况。Java里面用了另外一个语法来定义。那就是switch(条件){

case a:执行表达式

break

case b

break

case c

break

}

//Switch()就是if的判断表达式。Case就是判断的结果。a  是整形数字。后面接着执行的表达式。再接着就是break。相当于原来的if改为else if。就是确定区间。只执行这一段程序,遇见则退出,不再执行其他的程序。

代码如下:

public static void main(String[] args) {

 

Scanner in = new Scanner(System.in);

System.out.println("请输入成绩:");

int score = in.nextInt();

int a = (int) score / 10;

 

switch (score / 10) {

case 10:

case 9:

System.out.println("优秀");

break;

case 8:

System.out.println("良好");

break;

case 7:

case 6:

System.out.println("及格");

break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0:

System.out.println("不及格");

break;

default:

System.out.println("成绩输入有误,请重新输入");

}

}

//这样一来代码更加简化了,而且可以用于等于==这种特殊的情况。不过负数取值区间的bug仍然存在。我还是无法解决。

希望大家能帮我解决它。谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值