流程控制之分支结构
Scanner类(扫描仪)
用于接收键盘输入的数据 包括 数字 字符串 等数据
java.util包中
案例:
public class Demo{
public static void main(String[] args) {
//获取工具
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.println("请输入:");
//用工具
//int a = s.nextInt();//获取键盘输入的整数类型 int
//double d = s.nextDouble();//获取小数
//String e = s.next();//接收字符串
char c = s.next().charAt(0);//字符
System.out.println("您输入的数据是:"+c);
}
}
导包
语法:
import 包名1.包名2.包名3.类名;
案例:
package c1.c2;
import java.util.*;
public class Demo{
public static void main(String[] args) {
//获取工具
Scanner s = new Scanner(System.in);
System.out.println("请输入:");
//用工具
//int a = s.nextInt();//获取键盘输入的整数类型 int
//double d = s.nextDouble();//获取小数
//String e = s.next();//接收字符串
char c = s.next().charAt(0);//字符
System.out.println("您输入的数据是:"+c);
}
}
注意:
1.import 语句必须在package 语句之后
2.一个类默认会导入java.lang包
流程控制
概述:代码的执行顺序会影响程序的结果
顺序结构
概念:代码从上到下逐行执行
案例:
package c1.c2;
import java.util.*;
public class Demo{
public static void main(String[] args) {
int a = 1; //1 代表男 2 女
System.out.println("男");
System.out.println("女");
}
}
分支结构
if结构(3个小类)
if结构
语法:
if(布尔表达式){
语句1;
}
执行流程:
---true------ 执行语句1
布尔表达式的值
---false----- 不执行语句1
案例:
public class Demo{
public static void main(String[] args) {
int a = 20;
int b = 10;
int c = 20;
if(a>b){
System.out.println("a>b");
}
if (a<c) {
System.out.println("a<c");
}
System.out.println("程序结束");
}
}
========================================================================================
if...else结构
语法:
if(布尔表达式){
语句1;
}else{
语句2;
}
执行流程
-----true 语句1;
布尔表达式
-----false 语句2;
案例:
import java.util.*;
public class Demo{
public static void main(String[] args) {
//判断键盘输入的数据是奇数还是偶数
//1.获取工具
Scanner s = new Scanner(System.in);
System.out.println("请输入一个大于0的整数:");
//2.用工具接收int类型的数据
int a = s.nextInt();
//3.判断这个数是奇数还是偶数
//如果 这个数 求余2 没有余数 余数为0 偶数
if(a%2==0){
System.out.println("偶数");
}else{//反之 为奇数
System.out.println("奇数");
}
}
}
三元运算符和if...else语句的区别
布尔表达式?值1:值2;
总结:三元运算符简单但是,不能写语句 只能写值。
========================================================================================
if... else if(有多个)...else结构
语法:
if(布尔表达式1){
语句1;
}else if(布尔表达式2){
语句2;
}else if(布尔表达式3){
语句3;
}
。。。
else if(布尔表达式n){
语句n;
}else{
语句n+1;
}
执行流程:
|-----true 语句1
表达式1 | |-------true 语句2
|-----布尔表达式2|
|------表达式3
案例:
import java.util.*;
public class Demo{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入分数:");
//获取键盘的数据
int score = s.nextInt();
if(score<0||score>100){//非法数据
System.out.println("非法数据 你脑袋有泡!!!!");
System.exit(0);//系统退出
}else{//合法数据
if (score>=90&&score<=100) {
System.out.println("优秀");
}else if (score>=80) {
System.out.println("良好");
} else if(score>=70){
System.out.println("中等");
}else if (score>=60) {
System.out.println("及格");
} else{
System.out.println("不及格");
}
}
/*
根据成绩划分等级
100-90 优
80--89 良
70--79 中
60--69 及格
0---59 不及格
*/
}
}
注意:
1。if结构可以嵌套
2.if后的花括号和else后的都可以省略 但是只执行紧挨着的第一句代码 不建议
案例:
import java.util.*;
public class Demo{
public static void main(String[] args) {
int a = 10;
int b = 20;
if (a>b)
System.out.println("a<b");
System.out.println("程序结束");
}
}
switch case结构
语法:
表达式的值 只能是 byte short int char jdk7后支持String
switch(表达式){
case 值1:语句1;
case 值2:语句2;
case 值3:语句3;
case 值4:语句4;
}
执行流程:
表达式的值 用表达式的值和case后的值进行比较 如果相等 就执行对应的语句
case穿透问题:用break语句解决
import java.util.*;
public class Demo{
public static void main(String[] args) {
//输入1 输出星期一 输入2 输出 星期2
Scanner s = new Scanner(System.in);
System.out.println("请输入1-7之间的整数:");
int i = s.nextInt();
switch(i){
case 1 : System.out.println("星期一");break;
case 2 : System.out.println("星期二");break;
case 3 : System.out.println("星期三");break;
case 4 : System.out.println("星期四");break;
case 5 : System.out.println("星期五");break;
case 6 : System.out.println("星期六");break;
case 7 : System.out.println("星期日");break;
}
}
}
======================================================================================
default语句:
案例:
import java.util.*;
public class Demo{
public static void main(String[] args) {
//输入1 输出星期一 输入2 输出 星期2
Scanner s = new Scanner(System.in);
System.out.println("请输入1-7之间的整数:");
int i = s.nextInt();
switch(i){
case 1 : System.out.println("星期一");break;
case 2 : System.out.println("星期二");break;
case 3 : System.out.println("星期三");break;
case 4 : System.out.println("星期四");break;
case 5 : System.out.println("星期五");break;
case 6 : System.out.println("星期六");break;
case 7 : System.out.println("星期日");break;
default: System.out.println("你输入的数据有问题 你是个傻帽");
}
}
}
=============================================================================
案例2:
import java.util.*;
public class Demo{
public static void main(String[] args) {
//输入1 输出星期一 输入2 输出 星期2
Scanner s = new Scanner(System.in);
System.out.println("请输入1-7之间的整数:");
int i = s.nextInt();
switch(i){
default: System.out.println("你输入的数据有问题 你是个傻帽");break;
case 1 : System.out.println("星期一");break;
case 2 : System.out.println("星期二");break;
case 3 : System.out.println("星期三");break;
case 4 : System.out.println("星期四");break;
case 5 : System.out.println("星期五");break;
case 6 : System.out.println("星期六");break;
case 7 : System.out.println("星期日");break;
}
}
}
总结:default 语句除了可以放在最后一行还可以放在其他行但是要加break语句,放在最后一行不用加break
=====================================================================================
案例3:
import java.util.*;
public class Demo{
public static void main(String[] args) {
//输入1 输出星期一 输入2 输出 星期2
Scanner s = new Scanner(System.in);
System.out.println("请输入1-7之间的整数:");
int i = s.nextInt();
switch(i){
default: System.out.println("你输入的数据有问题 你是个傻帽");break;
case 1 : System.out.println("星期一");break;
case 2 : System.out.println("星期二");break;
case 2 : System.out.println("星期三");break;//错误!!!!!!!!!!
case 4 : System.out.println("星期四");break;
case 5 : System.out.println("星期五");break;
case 6 : System.out.println("星期六");break;
case 7 : System.out.println("星期日");break;
}
}
}
总结:case 后的值不可以重复
局部变量
概念:在函数中定义的变量叫做局部变量
作用域:从定义变量的位置开始到它所在的代码块结束
案例:
import java.util.*;
public class Demo{
public static void main(String[] args) {
/*System.out.println(a);
int a = 10;//开始
System.out.println(a);*/
{//代码块
int b =20;
}
System.out.println(b);
}
}
重名:在有重合作用域范围内不能定义相同名称的局部变量
案例:
import java.util.*;
public class Demo{
public static void main(String[] args) {
/*System.out.println(a);
int a = 10;//开始
System.out.println(a);*/
//int b = 30;//错误的
{
int b =20;
System.out.println(b);
}
{
int b = 30;//这是可以的
System.out.println(b);
}
}
}
变量未赋值不能使用
案例:
import java.util.*;
public class Demo{
public static void main(String[] args) {
int a;
System.out.println(a);
}
}