分支结构的的概念:
当需要进行条件判断并做出选择时,使用分支结构。
if分支结构
if(条件表达式) {
语句块;
}
案例:
import java.util.Scanner; // 是一个类,可以用这个类来从控制台写入数据,写入数据时要加上
public static void main(String[] args){
//1.提示用户输入整数
System.out.println("请输入两个整数:");
Scanner sc = new Scanner (System.in); //获取用户输入
int ia =sc.nextInt();
int ib =sc.nextInt();
//2.使用if分支结构找到最大值并打印
/*方法1:使用两个if
if(ia >= ib){
System.out.println("最大值是:" + ia);
}
if(ia <ib){
System.out.println("最大值是:" + ib);
} */
//方法2:假设第一个数为最大值并记录
int max = ia;
if(ib > max){
max = ib;
}
System.out.println("最大值是:" + max);
if else分支结构
if(条件表达式) {
语句块1;
} else {
语句块2;
}
案例:
//使用if else分支结构判断是否为负数和非负数
public static void main(String[] args){
System.out.println("请输入一个整数:");
Scanner sc = new Scanner (System.in);
int ia = sc.nextInt();
if(ia < 0){
System.out.println(ia + "为负数");
}else{
//System.out.println(ia + "为非负数");
//针对目前非负数再次判断是否为正数和0
if(ia > 0){
System.out.println(ia + "为正数");
}else{
System.out.println(ia + "为0");
}
}
}
if else if else分支结构
if(条件表达式1) {
语句块1; }
else if(条件表达式2) {
语句块2; }
else {
语句块n; }
案例:
//使用if else if else 分支结构来计算出租车计费系统
public static void main(String[] args){
System.out.println("请输入公里数和等待的秒数:");
Scanner sc = new Scanner (System.in);
int km = sc.nextInt();
int sec = sc.nextInt();
int kmprice = 0;
if(km <= 3){
kmprice = 13;
}else if(km <= 15){
kmprice = 13 + (km - 3) * 2;
}if(km > 15){
kmprice = 13 + (15 - 3) * 2 + (km - 15) * 3;
}
int secprice = sec / 150;
int sumprice = kmprice + secprice;
System.out.println("本次行程总费用为:" + sumprice);
}
switch case分支结构
switch(变量/表达式) {
case 字面值1: 语句块1; break;
case 字面值2: 语句块2; break;
...
default:语句块n;
}
switch()
中支持的数据类型有:
byte
、
short
、
char
以及
int
类型,从
jdk1.5
开始支持枚举类型,从
jdk1.7
开始支持
String
类型。
案例:
//使用if else if else 分支结构来判断考试成绩所在等级
public static void main(String[] args){
System.out.println("请输入您的考试成绩:");
Scanner sc = new Scanner (System.in);
int score = sc.nextInt();
if(90 <= score && score <= 100){
System.out.println("等级A");
}else if(80 <= score ){
System.out.println("等级B");
}else if(70 <= score ){
System.out.println("等级C");
}else {
System.out.println("等级E");
}
}
循环结构
概念:
- 在Java程序中若希望重复执行一段代码时,就需要使用循环结构。
- 任何复杂的程序逻辑都可以通过顺序、分支、循环三种程序结构实现。
for循环
for(初始化表达式; 条件表达式; 修改初始值表达式) {
循环体;
}
//使用for循环,打印100内的奇数
//方法1:根据奇数概念除余数不等于0
public static void main(String[] args) {
for(int i = 1; i <= 100; i++){
if(i % 2 !=0){
System.out.println("i = " + i);
}
}
System.out.println("----------------------------------------");
//方法2:根据两数差值为2
for(int i = 1; i <= 100; i += 2){
System.out.println("i = " + i);
} */
/* //使用for循环,打印100内的奇数
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 100; i++){
sum += i;
}
System.out.println("sum =" + sum);
}
continue关键字
continue语句用在循环体中,用于结束本次循环而开始下一次循环。
//实现 continue关键字的使用
public static void main(String[] args) {
for(int i = 1; i <= 20; i++){
//不打印5的倍数
if(0 == i % 5){
continue;//提前结束本次循环,继续下一次循环
}
System.out.println(" i " + i);
}
}
双重for循环
for(
初始化表达式
1;
条件表达式
2;
修改初始值表达式
3) {
for(
初始化表达式
4;
条件表达式
5;
修改初始值表达式
6) {
循环体
;
}
}
//使用双重for打印九九乘法表
public static void main(String[] args) {
//1.使用外层for循环控制打印的行数,一共9行
outer:for(int i =1; i <= 9;i++){
//2.使用内层for循环控制打印的列数,最多9列,规律是:与当前所在的行数相等
for(int j =1; j <= i; j++){
//3.使用内层for循环变量来拼接等式
System.out.print(j + "*" + i + "=" + i*j + " ");
//4.打印到6*6结束整个打印
if(6==j){
//break;//主要用于跳出循环(只能跳出当前所在循环)
break outer;
}
}
System.out.println();
}
}
break关键字
• break用于退出当前语句块,break用在循环体中用于退出循环。
• for(;;) - 这种没有循环条件的循环叫做 无限循环,俗称“死循环” 。
break一般用于子循环内语句表示循环结束
break关键字跳出多层循环
• 在嵌套的循环结构中,break用于退出所在循环体。
• 如果要退出外层循环体,需要使用标号的方式。
for (...) {
for(...) {
break;
}
}
|
outer: for (...) {
for(...) {
break outer;
}
}
|
while循环
while(条件表达式) {
循环体;
}
//倒序打印(如123 321)
public static void main(String[] args) {
System.out.println("请输入一个正整数:");
Scanner sc =new Scanner(System.in);
int num =sc.nextInt();
//拆分打印方式
//while(num > 0){
// System.out.print(num % 10);//拆分出个位数
// num /= 10;//丢弃个位数,再进入下一次循环
//}
int res = 0;
int temp = num;//指定变量做numd 替身
while(temp > 0){
res = res*10 + temp % 10;//3 32 321
temp /= 10; //12 1 0
}
System.out.println(res);
}
while循环和for循环比较
• while循环和for循环完全可以互换,当然推荐使用for循环。
• while循环更适合于明确循环条件但不明确循环次数的场合中。
• for循环更适合于明确循环次数或范围的场合中。
• while(true) 等价于 for(;;) 都表示无限循环。
do while循环
do-while循环主要用于至少执行一次循环体的场合中。
do {
循环体;
} while(条件表达式);
public static void main(String[] args) throws Exception{
String mag = null;
do{
System.out.println("正在学习中。。。");
Thread.sleep(5000); //模拟5秒
System.out.println("是否合格?");
Scanner sc =new Scanner(System.in);
mag =sc.next();
}while (!"y".equals(mag));
System.out.println("恭喜合格!");
System.out.println("-----------------------------");
//笔试考点:有没有分好号
int i=1;
while(i<=100);{ //加; 语句不执行(空语句,用于延时)
System.out.println("i love you!" );
i++;
}
}