1.分支结构 swithch结构 for循环
1.1分支结构
单分支 多分支 嵌套分支
1.2商品打折案例
package cn.tedu.structure;
import java.util.Scanner;
//本类 用于练习商品打折案例
public class TestDiscount {
public static void main(String[] args) {
System.out.println("请输入价格:");
double price =new Scanner(System.in).nextDouble();
if(price<0) {//健壮性
System.out.println("您输入的价格有误!");
return;//结束程序
}
// double count=price; /**初始值是商品的原价*/
if (price>=10000) {
price=price*0.1;
}else if (price>=5000) {
price=price*0.5;
}else if(price>=2000) {
price=price*0.8;
}else if(price>=1000){
price=price*0.9;
}
System.out.println("您实际应支付:"+price);
}
}
注意程序的 健壮性
2.switch结构
switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束
package cn.tedu.structure;
//本类用于练习switch结构
public class TextSwitch {
public static void main(String[] args) {
/**总结1:变量a的类型支持五种byte short char int String
* 总结2:break表示结束当前的case,如果不加break,会向后穿透所有的case,包含default
* 总结3:default是一个保底选项,可加可不加
* default是如果没有匹配到任何case时执行的选项*/
//一般都会 加上break
int a=3;
switch(a) {
case 1:System.out.println(1);break;
case 2:System.out.println(2);break;
case 3:System.out.println(3);break;
case 4:System.out.println(4);break;
case 5:System.out.println(5);break;
default:System.out.println(0);
}
String s="Monday";
switch(s) {
case "Monday":System.out.println("星期一吃A");
case "Tuesday":System.out.println("星期一吃B");
case "Wednesday":System.out.println("星期一吃C");
case "Thursday":System.out.println("星期一吃D");
case "Friday":System.out.println("星期一吃E");
case "Saturaday":System.out.println("星期一吃F");
case "Sunday":System.out.println("星期一吃G");
default :System.out.println("想吃啥吃啥 ");
}
}
}
3.循环结构
3.1for形式
for(开始条件;循环条件;更改条件){循环体}
package cn.tedu.structure;
//本类用于测试 for循环
//DEBUG调试 :可以查看程序执行的具体细节 F6进行下一步
//添加断点:双击目标语句;结构性语句无法添加断点
public class TextFor {
public static void main(String[] args) {
/** for(开始条件;循环条件;更改条件){循环体} 从哪开始,到哪结束,如何让变化*/
// m0();
// m1();
// m2();
m3();
}
public static void m3() {//求[1,100]的所有偶数的和
int count=0;
for(int i =1;i<=100;i++) {
if(i%2==0) {
count++;
}
}
System.out.println(count);
}
public static void m2() {
int sum = 0;
for (int i = 1; i < 101; i++) {
if (i % 2 == 0) {
sum = sum + i;
}
}
System.out.println("1到 100所有偶数的和为:" + sum);
}
public static void m0() {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
for (int i = 10; i >= 0; i--) {
System.out.println(i);
}
}
public static void m1() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
System.out.println(sum);
}
}
DEBUG的测试代码
3.2嵌套for循环
3.2.1概述
存在至少2层for循环,根据外层的条件,判断里层能否执行
如果能执行,就把里层代码都循环完毕后,再继续判断是否执行外层循环的下一次循环
3.2.2案例:嵌套for循环打印三行五列矩形
package cn.tedu.structure;
//本类用于嵌套for循环
public class TestForDemo01 {
public static void main(String[] args) {
//method1();
method2();//打印一个三行五列的矩形
}
public static void method2() {
for (int j = 1; j <= 3; j++) {//外层循环控制行数
for (int i = 1; i <= 5; i++) {//外层循环控制列数
System.out.print("*");
}
System.out.println();//用空白行来换行
}
}
public static void method1() {
/**总结1:外层循环执行一次,内层循环执行一轮
* 总结2:外层循环控制的是执行轮数,循环三次,执行三轮 ;
* 内层循环控制的是每一轮循环中执行的次数*/
for(int i=1;i<=3;i++) {/**外层循环*/
System.out.println();
System.out.println(i);
for(int j=1;j<=5;j++) {/**内层循环*/
System.out.print(j);
}
}
}
}
总结1:外循环执行1次,内循环执行多次
总结2:外循环控制行,内循环控制列
3.2.3 练习:左直角三角形
package cn.tedu.structure;
//利用for循环打印左直角三角形
public class TextForTriangle {
public static void main(String[] args) {
for(int i=1;i<=5;i++) {
/**注意:需要修改内层循环的循环条件,让j的最大值随i
* 来改变,不能写成固定值,否则变成矩形*/
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
}
}
3.2.4练习:九九乘法表
package cn.tedu.structure;
//本类用于测试 完成九九乘法表
public class TestFor99Excel {
public static void main(String[] args) {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
/**拼接打印算式,后面加了一个“\t”表示表格格式,\t也称为制表符*/
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
\t 也称为制表符