1、 分支(选择)结构
1.1、 语法
1.1.1、 单分支
//获取判断条件的逻辑 start
Scanner input = new Scanner(System.in);
System.out.println("请输入i同学的Java成绩");
int iJavaS=input.nextInt();
System.out.println("请输入i同学的音乐成绩");
int iMusicS=input.nextInt();
//获取判断条件逻辑 end
//给一个初始默认值
String sReturn = "老师不奖励他";
//根据逻辑:
//i同学Java成绩大于90分,并且音乐成绩大于80分时,
//i同学Java成绩等于100分,并且音乐成绩大于70分时,
//老师奖励他
//进行if语句编写
if((iJavaS>90 && iMusicS>80)||(iJavaS==100 && iMusicS>70)){
sReturn = "老师奖励被咬了一口的apple6"
}
//输出结果
System.out.println(sReturn);
1.1.2、 双分支
//获取判断条件的逻辑 start
Scanner input = new Scanner(System.in);
System.out.println("请问六子吃了几碗粉:");
int num1=input.nextInt();
System.out.println("请问六子付了几碗粉钱:");
int num2=input.nextInt();
//获取判断条件逻辑 end
//进行判断:
if(num1==nmu2){
//满足条件
System.out.println("这就是公平!!!")
}
else{
//不满足条件
System.out.println("这不是欺负老实人么?")
}
判断,如果满足条件,则进入if的代码块。不满足条件,进入else代码块
1.1.3、 多分支
//获取判断条件的逻辑 start
Scanner input = new Scanner(System.in);
System.out.println("请输入你的成绩:");
int i=input.nextInt();
String sReturn = ""
//获取判断条件逻辑 end
//进行判断:
if(i>80){
//如果你的成绩比80分高,结果就是良好
sReturn = "良好"
}else if(i>=60){
//如果你的成绩不比80分高,我们看看你是否比60分高
//如果你60分高,那么你就是中等
sReturn = "中等"
}else{
//如果你都不满足上面的条件(仅比60分高,或者又不比60分高)那么你就是中等
sReturn = "差"
}
System.out.println("你本次的结果为:"+sReturn);
package com.kgc.day03
import java.util.Scanner;
public class Test06{
pulbic static void main(String[] args){
Srting name="",sex=""; //参加者的名称,参加者的性别
int score=999; //参赛者的成绩
Scanner input = new Scanner(System.in);
System.out.println("请输入参加者的名称:");
name=input.next();
System.out.println();
System.out.println("请输入参加者的性别:");
sex=input.next();
System.out.println();
System.out.println("请输入参加者的跑步成绩:");
score=input.next();
System.out.println();
if(socre>10);{
System.out.println("很遗憾你无缘参加决赛"):
}else{
if("男".equals(sex)){
System.out.println("恭喜你"+name+"进入男生组决赛");
}else{
System.out.println("恭喜你"+name+"进入女生组决赛");
}
}
}
}
1.1.4、 嵌套分支
//由于if(){}else{}的逻辑如下
//if(true){
代码……
//}else{
代码……
//}
//而且if(){}else{}本质也是代码,所以他自然可以嵌套在其他的if(){}else{}当中
//如下实例:
String sReturn="";
if(socre>10);{
sReturn=name+"很遗憾你无缘参加决赛";
}else{
if("男".equals(sex)){
sReturn = "恭喜你"+name+"进入男生组决赛";
}else{
sReturn = "恭喜你"+name+"进入女生组决赛";
}
}
System.out.println(sReturn);
2、switch
Scanner input = new Scanner(System.in);
System.out.println("请输入你获得的名次");
int mingCi=input.nextInt();
switch(mingCi){
case 1:
System.out.println("恭喜你获得第一名");
//如果不使用break跳出,会继续执行之后每一个case的选项。
break;
case 2:
System.out.println("恭喜你获得第二名");
break;
default:
System.out.println("谢谢参与");
}
//关于default
//default的位置是存在讲究的,一般情况下,我们会将default放在switch的最后一块
//如果所有的case都匹配不上,则会进入匹配default当中
//如果进入了某个case块(包括default)那么,当没有遇到break的时候
//会将该位置之后的所有case块(包括default)按照顺序执行
//比如你的代码如下
switch(mingCi){
case 1:
System.out.println("恭喜你获得第一名");
//如果不使用break跳出,会继续执行之后每一个case的选项。
//break;
default:
System.out.println("谢谢参与");
case 2:
System.out.println("恭喜你获得第二名");
//break;
}
//当mingCi为1的时候,会执行顺序执行 24 28 30行代码
//当mingCi为2的时候,只会执行30行代码(因为有case匹配,所以不进default)
//当mingCi为3的时候,会执行顺序执行28 30(因为所有的case都匹配不上,所以进入default,并且由于不存在break,那么28行即之后的30行会被执行。
给一个不需要break场景的例子
Scanner input = new Scanner(System.in);
int iCount=0;
System.out.println("每过1个小时给计时器+1");
System.out.println("现在是几点");
String time=input.next();
switch(time){
case "20:00":
iCount++;
case "21:00":
iCount++;
case "22:00":
iCount++;
case "23:00":
iCount++;
}
System.out.println("过"+iCount+"小时是24:00");
3、String的equals方法
对于字符串的比较我们不使用==而是使用equals方法调用,比如
String str="str";
if("str".equals(str)){
//执行代码
}
当我们对于一个字符串对象和一个字符串比较时,如上图所示str对象和”str“字符串比较
我们一定要将字符串写在前面,否则当str对象为null(空)的时候就会抛出
NullPointerException——空指针异常
4、 局部变量
//当我们声明的变量在某块代码中,而不是全局,
//此时该变量为局部变量,在声明的代码意外的地方,
//时无法调用或修改变量的
//例如:
public static void main(String[] args){
int i =1;
if(i>10){
//此时的i为if代码块中的局部变量,无法再if模块以外使用(作用范围在7-8行中)
int j=2;
}
//由于变量i实在main方法中声明,所以所有main方法中的代码都可以使用/修改i变量
System.out.println(i);
//由于变量j是在main方法中声明,所以j只能作用在if代码块中(8-9行)在15行打印会直接报错
//报j方法的
//System.out.println(j);
}