一.分支结构if
1.定义:顺序结构的程序虽然能够解决计算和输出的问题,但不能做判断再做选择。对于要做判断和选择的问题就要用到分支结构。
2.形式:单分支,多分支以及嵌套分支。
3.例题,计算商品的折后价格。
package Practice;
//测试if。
import java.util.Scanner;
public class Practice_01 {
public static void main(String[] args) {
//接受用户输入的原价。
System.out.print("请输入商品金额:");
double price = new Scanner(System.in).nextDouble();
double price1 = 1;
//计算折后价并且输出。
if(price >= 5000)
{
price1 = price * 0.5;
}
else if(price >= 2000 && price < 5000)
{
price1 = price * 0.6;
}
else if(price >= 1000 && price < 2000)
{
price1 = price * 0.8;
}
else if(price >= 0 && price < 1000)
{
price1 = price * 1;
}
else
{
System.out.println("价格输入有误!");
}
System.out.println("商品原价为:" + price + ",折后价格为:" + price1 + "元");
}
}
4.例题,对学生的分数进行评级。
package Practice;
//给学生分数进行评级。
import java.util.Scanner;
public class Practice_02 {
public static void main(String[] args) {
System.out.print("请输入学生的分数:");
int score = new Scanner(System.in).nextInt();
if(score >= 90 && score <= 100)
{
System.out.println("优秀");
}
else if(score >= 80 && score < 90)
{
System.out.println("良好");
}
else if(score >= 70 && score < 80)
{
System.out.println("中等");
}
else if(score >= 60 && score < 70)
{
System.out.println("及格");
}
else if(score < 60 && score >= 0)
{
System.out.println("不及格");
}
else
{
System.out.println("输入结果有误");
}
}
}
二.分支结构Switch
1.定义:当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束。
2.形式:switch(条件)中,()中的条件是一个整数表达式,整数表达式可以是int,byte,short,char以及String类型。
3.例题,匹配数字。
package Practice;
//测试Switch。
public class Practice_03 {
public static void main(String[] args) {
int sum = 10;
switch(sum) {
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;
default:
System.out.println(5);
}
}
}
三.循环结构for
1.定义:在程序中需要反复执行某个功能而设置的一种程序结构,它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可以细分为先判断后执行的循环结构和先执行后判断的循环结构。
2.形式:for(开始条件;循环条件;更改条件){ 循环体代码…}
3.例题1,测试for循环,将名字输出十遍。
package Practice;
//测试for循环。
public class Practice_04 {
public static void main(String[] args) {
for(int i = 0;i<10;i++)
{
System.out.println("香港吴亦凡");
}
}
}
4.例题2,打印数字0~10。
package Practice;
//打印数字0~10。
public class Practice_05 {
public static void main(String[] args) {
for(int i = 0;i<=10;i++)
{
System.out.print(i + " ");
}
}
}
5.例题3,打印数字10~0。
package Practice;
//打印数字10~0。
public class Practice_06 {
public static void main(String[] args) {
for(int i = 10;i>=0;i--)
{
System.out.print(i + " ");
}
}
}
6.例题4,打印数字8,88,888,8888。
package Practice;
//打印数字8,88,888,8888。
public class Practice_07 {
public static void main(String[] args) {
for(int i=8;i<10000;i=10*i+8)
{
System.out.println(i);
}
}
}
7.例题5,计算1-100中4的倍数的数之和。
package Practice;
//求1-100中,4的倍数的和。
public class Practice_08 {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=100;i++)
{
if(i%4==0)
{
sum = sum + i;
}
}
System.out.println("1-100中4的倍数的数之和为:" + sum);
}
}
四.嵌套for循环
1.定义:根据外层的条件,判断里层能否执行,如果能执行,就把里层代码都循环完毕后,再继续执行外层继续判断。
2.例题1,嵌套循环案列。
package Practice;
//测试嵌套for循环。
public class Practice_09 {
public static void main(String[] args) {
for(int i=1;i<=3;i++)
{
System.out.println("外循环" + i);
for(int j=1;j<=5;j++)
{
System.out.println("内循环" + j);
}
}
}
}
3.例题2,打印5行5列的*。
package Practice;
//打印5行5列的*。
public class Practice_11 {
public static void main(String[] args) {
for(int i =1;i<=5;i++)
{
for(int j = 1;j<=5;j++)
{
System.out.print("* ");
}
System.out.println();
}
}
}
4.例题3,打印左直角三角形。
package Practice;
//打印左直角三角形。
public class Practice_12 {
public static void main(String[] args) {
for(int i=0;i<5;i++)
{
for(int j=0;j<=i;j++)
{
System.out.print("* ");
}
System.out.println();
}
}
}
5.例题4,打印九九乘法表。
package Practice;
//打印九九乘法表。
public class Practice_13 {
public static void main(String[] args) {
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print(i+"*"+j+"="+i*j + " ");
}
System.out.println();
}
}
}
五.break和continue关键字。
1.定义:break用来中断当前循环。continue用来跳出本次循环,进入下一轮,只能在循环结构中使用。
2.例题1,break和continue简单案例。
package Practice;
//测试结束循环的两种方式break和continue。
public class Practice_14 {
public static void main(String[] args) {
for(int i =1;i<=10;i++)
{
if(i%2==0)
{
System.out.println(i);
continue;//输出结果为2,4,6,8,10。
//break;输出结果为2。
}
}
}
}