一、IF选择语句
IF选择结构
if(condition) {
statement1;
//此处可以是一条单独的语句,也可以是位于花括号中的代码块
}else
statement2;
//此处可以是一条单独的语句,也可以是位于花括号中的代码块
}
//condition:是返回一个boolean值的逻辑表达式
if执行过程:如果条件(condition)为真,就执行语句1(statement1),否则就执行语句2(statement2)
else 子句为可选
int i =5;
if (i>1) {
System.out.println("i大于1");
}
多重if选择结构 if-else if
if (condition1) {
statement1;
}else if (condition2){
statement2;
}else if (condition3) {
statement3;
...
else {
statement;
}
这个if语句自顶向下开始执行,只要一个if的条件为真,就执行与该if相关联的语句,然后跳过其余部分。如果执行所有条件为假,则执行else中的语句。
嵌套if选择结构 if-else {if -else}
if (condition1) {
if (condition1_1) {
statement1_1;
else {
statement1_2;
};
}else {
statement2;
}
这个if语句自顶向下开始执行,(condition1)的条件为真,就进入 该语句,再判断嵌套的if选择结构,执行相关联的语句。然后跳过其余部分。如果(condition1)的条件为假,则执行else中的语句。
switch 多路分支语句
switch (expression) {
case value1:
statement;break;
case value2:
statement;break;
case value3:
statement;break;
default:
statement;
}
语法说明:
1、expression表达式的类型只能为byte、short、char 和int 这4 种之一。
2、值1、值2…值n 只能为常数或常量,不能为变量。
3、功能代码部分可以写任意多句。
4、break 关键字的意思是中断,指结束switch 语句,break 语句为可选,如果省略了break语句,程序会继续执行下一个case语句。
5、case 语句可以有任意多句,是标号语句。
6、default 语句可以写在switch 语句中的任意位置,功能类似于if 语句中的else。
执行流程:
当表达式的值和对应case 语句后的值相同时,既从该位置开始向下执行,一直执行到switch 语句的结束,在执行中,如果遇到break 语句,则结束switch 语句的执行。
实例一
package com.endless;
import java.util.Scanner;
/**
* @JAVA02.Intsum.java
* @author 当前用户:Endless作者 :Endless
* @version 创建时间:2017年7月25日 下午5:58:04
* 读入10到9999的一个整数并将其各位数字之和赋给一个整数
* 整数取余10结果为其个位数
* 整数除以10结果为其个位前加点然后取整数位
*利用%运算符分解数字,并用/运算符去除分解出来的数字。如932%10=2,932/10=93
*/
public class Intsum {
public static void main(String []args){
int num =scan();
if(num>9999 || num<10){
if(num>9999){
System.out.println("输入值过大");
main(args);
}else{
if(num==0){
System.exit(0);
}else{
System.out.println("输入值过小");
main(args);
}
}
}else{
int x=num%10;
int y=num/10%10;
int z=num/100%10;
int n=num/100%10;
System.out.println("此整数各为数之和为:"+(x+y+z+n));
main(args);
}
}
public static int scan(){
System.out.println("输入0退出程序\n请输入一个10到9999之间的整数:");
Scanner in =new Scanner(System.in);
return in.nextInt();
}
}
实例二:
package IFELSE;
import java.util.Scanner;
/**
* @JAVA03.ifswicth.java
* @author 当前用户:Endless作者 :Endless
* @version 创建时间:2017年7月26日 上午11:58:59
*
*/
public class ifswicth {
static Scanner in = new Scanner(System.in);
static int s;
static String bke="百事可乐",ke="500ml可乐一瓶",m="5公斤面粉",ss="1个苏泊尔炒菜锅",o="欧莱雅爽肤水一瓶";
public static void main(String[] args) {
System.out.println("请输入消费金额:");
if(in.hasNext()){
s=in.nextInt();
System.out.println("是否参加优惠换购活动:" );
System.out.println("1:满50元,加2元换购"+bke );
System.out.println("2:满100元,加3元换购" +ke);
System.out.println("3:满100元,加10元换购" +m );
System.out.println("4:满200元,加10元换购" +ss );
System.out.println("5:满200元,加20元换购 " +o );
System.out.println("0:不换购\n请选择:\n" );
os();
}else{
System.out.println("请输入数字");
main(null);
}
}
static void out(String n , int s){
System.out.println("本次消费总金额:"+s);
System.out.println("成功换购"+n);
main(null);
}
static void os(){
switch (in.nextInt()) {
case 1:
if(s>=52){
out(bke,s+2);
}else{
Err();
}
case 2:
if(s>=103){
out(ke,s+3);
}else{
Err();
}
break;
case 3:
if(s>=110){
out(m,s+10);
}else{
Err();
}
break;
case 4:
if(s>=210){
out(ss,s+10);
}else{
Err();
}
break;
case 5:
if(s>=220){
out(o,s+20);
}else{
Err();
}
break;
default:
System.out.println("请重新选择");
os();
}
}
static void Err(){
System.out.println("金额不足\n");
main(null);
}
}
实例三
package IFELSE;
import java.util.Scanner;
/**
* @JAVA03.Grade.java
* @author 当前用户:Endless作者 :Endless
* @version 创建时间:2017年7月26日 下午1:38:34
* 请实现 班级考试成绩分级
* 成绩 >=90 A 级;
* 成绩 >=80 B 级;
* 成绩 >=70 C 级;
* 成绩 >=60 D 级;
* 成绩 <=60 E 级;
*/
public class Grade {
@SuppressWarnings("resource")
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("输入一个0到100的整数格式的分数:");
if(in.hasNext()){
try {
int gra =in.nextInt();
if (gra<=100){
if (gra>=90){
out("A");
}else if (gra>=80) {
out("B");
}else if (gra>=70) {
out("C");
}else if (gra>=60) {
out("D");
}else if (gra<=60) {
out("E");
}else {
main(args);
}
}else{
main(args);
}
} catch (Exception e) {
main(args);
}
}
}
static void out(String s){
System.out.println("成绩等级为"+s+"级");
}
}
实例四
package IFELSE;
import java.util.Scanner;
/**
* @JAVA03.season.java
* @author 当前用户:Endless作者 :Endless
* @version 创建时间:2017年7月26日 下午2:01:58
* 请实现 输入月份 判断季节
* 春季(123) 输出 春暖花开学java?春困,再等等!
* 夏季(456) 输出 艳阳高照学java?夏乏,再等等!
* 秋季(789) 输出 秋高气爽学java?秋燥,再等等!
* 冬季(10-12) 输出 瑞雪纷飞学java?冬寒,再等等!
*/
public class season {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个小于1到12 的数字");
if(in.hasNext()){
try {
int x = in.nextInt();
if(x>=1 && x<=12){
if(x==1||x==2||x==3){
System.out.println(" 春暖花开学java?春困 ");
main(args);
}else if (x==4||x==5||x==6) {
System.out.println(" 艳阳高照学java?夏乏 ");
main(args);
}else if (x==7||x==8||x==9) {
System.out.println(" 秋高气爽学java?秋燥");
main(args);
}else if (x==7||x==8||x==9) {
System.out.println(" 瑞雪纷飞学java?冬寒");
main(args);
}
}else{
main(args);
}
} catch (Exception e) {
main(args);
}
}
}
}