选择结构
if
if单选择结构
-
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示
-
语法
if(布尔表达式){ //布尔表达式为真则执行的语句 }
package com.ljh.structure;
import java.util.Scanner;
/**
* if单选择结构
*/
public class IfDemo1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入:");
String s = scanner.nextLine();
if (s.equals("hello,world")){//equals()比较两个字符串是否相等
System.out.println("你好,世界");
}
scanner.close();
}
}
if双选择结构
语法:
if(布尔表达式){
//如果布尔表达式的值为真则执行
}else{
//如果布尔表达式的值为假则执行
}
package com.ljh.structure;
import java.util.Scanner;
/**
* if双选择结构
*/
public class IfDemo2 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入:");
String s = scanner.nextLine();
if (s.equals("hello,world")){//equals()比较两个字符串是否相等
System.out.println("你好,世界");
}else{
System.out.println("你好,java");
}
scanner.close();
}
}
if多选择结构
有时候我们的代码存在区间多级判断,在我们生活很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题!
语法:
if(布尔表达式1){
//布尔表达式1为真则执行
}else if(布尔表达式2){
//布尔表达式2为真则执行
}else if(布尔表达式3){
//布尔表达式3为真则执行
}else{
//如果以上都不为真则执行
}
package com.ljh.structure;
import java.util.Scanner;
/**
* 多选择结构
*/
public class IfDemo3 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入成绩");
int score = scanner.nextInt();
if (score==100){
System.out.println("极品");
}else if(score<100&&score>=80){
System.out.println("优");
}else if(score<80&&score>=60){
System.out.println("良");
}else if(score<60&&score>=0){
System.out.println("差");
}else {
System.out.println("输入不合法");
}
scanner.close();
}
}
if嵌套
-
使用if...else语句是合法的,也就是说你可以在另一个if或者else if语句中使用if或者else if语句 你可以像if语句一样嵌套 else if...else.
-
语法:
if(布尔表达式1){ //布尔表达式1为真执行的代码 if(布尔表达式2){ //布尔表达式2为真执行的代码 } }
switch
- switch case语句判断一个变量与一系列中某个值是否相等,每个值成为一个分支
- switch语句中的变量类型可以是:
- byte、short、int或是char
从javaSE 7开始 switch支持String字符串了
- 同时case标签必须为字符串常量或字面量
package com.ljh.structure;
public class SwitchDemo1 {
public static void main(String[] args) {
char code='A';
switch (code){
//如果没有break会有case穿透问题,最后一个可以不写break,最好都带上
case 'A':
System.out.println("A");
break;
case 'B':
System.out.println("B");
break;
case 'C':
System.out.println("C");
break;
default:
System.out.println("啥也不是");
}
}
}
我们通过反编译可以看到 字符本质其实还是数字
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: SwitchDemo1.java
package com.ljh.structure;
import java.io.PrintStream;
public class SwitchDemo1
{
public SwitchDemo1()
{
}
public static void main(String args[])
{
char code = 'A';
switch(code)
{
case 65: // 'A'
System.out.println("A");
break;
case 66: // 'B'
System.out.println("B");
break;
case 67: // 'C'
System.out.println("C");
break;
default:
System.out.println("\u5565\u4E5F\u4E0D\u662F");
break;
}
}
}