Java 逻辑控制语句
- 1.顺序结构
- 2.条件分支结构
- 举例:1.判断年份是否为闰年?
- 举例:2.根据商品价格和数量,以及顾客付款金额,判断需要找零的金额或是需要补足的金额(支付金额若超过500元,可以享受8折优惠)。
- 举例:对于学生分数的简单评级。
- 举例:4.Switch语句的应用,判断每个月的天数。
- 3.循环结构
- 举例:1.求1-100的和
- 举例:2.求20!的值
- 举例:3.有一对兔子,从第3个月开始,每个月再生一对兔子,每个月有多少只兔子, 10个月有几只?
- 举例:4.猜数游戏
- 举例:5.9x9乘法表
1.顺序结构
Java的基本结构就是顺序结构,除非特别指明,否则就是按照顺序一句一句执行。
顺序结构是最简单的算法结构。
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
2.条件分支结构
• 当条件满足时运行某些语句;
当条件不满足时则不运行这些语句 – if结构。
• 当条件满足时运行某些语句;
当条件不满足时运行另外一些语句 – if-else结构。
举例:1.判断年份是否为闰年?
import java.util.Scanner;
public class Demo02ifLeapYear {
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("判断是否为闰年:");
int a = scan.nextInt();
if (a%4==0&&a%100!=0||a%400==0){
System.out.println("是闰年!");
}else {
System.out.println("不是闰年!");
}
}
}
运行结果:
举例:2.根据商品价格和数量,以及顾客付款金额,判断需要找零的金额或是需要补足的金额(支付金额若超过500元,可以享受8折优惠)。
import java.util.Scanner;
public class Demo02If {
public static void main (String [] agrs) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入商品单价:");
double cost = scan.nextDouble();
System.out.println("--------");
System.out.println("请输入商品数量:");
double a = scan.nextDouble();
System.out.println("--------");
System.out.println("请输入实付金额:");
double money = scan.nextDouble();
System.out.println("--------");
double sun = cost*a;
if (sun>money) {
System.out.println("实付金额不足!还需要:"+(sun-money)+"元");
}else if(sun<=money) {
if(money>=500) {
System.out.println("您支付的金额超过500元,可以享受8折优惠!");
sun=sun*0.8;
System.out.println("找零金额:"+(-(sun-money))+"元");
}else {
System.out.println("找零金额:"+(-(sun-money))+"元");
}
}
}
}
运行结果:
举例:对于学生分数的简单评级。
import java.util.Scanner;
public class Demo01If {
public static void main (String [] agrs) {
//分支结构
System.out.println("请输入你的分数:");
//控制台输入数值 ——JDK提供的类库
Scanner scan = new Scanner(System.in);
int score = scan.nextInt();
if (score == 100) {
System.out.println("A+");
}else if (score >=95){
System.out.println("A");
}else if (score >=90){
System.out.println("A-");
}else if (score >=85){
System.out.println("B+");
}else if (score >=80){
System.out.println("B-");
}else if (score >=75){
System.out.println("C+");
}else if (score >=70){
System.out.println("C");
}else if (score >=65){
System.out.println("C-");
}else if (score >=60){
System.out.println("D+");
}else {
System.out.println("D");
}
}
}
举例:4.Switch语句的应用,判断每个月的天数。
import java.util.Scanner;
public class Demo03Switch {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入月份:");
int month = scan.nextInt();
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month+"月,有一共有31天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month+"月,有一共有30天");
break;
case 2:
System.out.println(month+"月,有一共有28天");
break;
default:
System.out.println("这个月不存在!");
}
}
}
运行结果:
3.循环结构
循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性执行。
循环的要素:
– 循环体(相同或相似的语句)
– 循环条件(继续执行循环的条件,某些情况下循环条件以循环次数的方式体现)
循环语句有以下三种:
for
while
do-while
for(初始值; 循环条件; 步进方式){循环体}
有规律, 或者知道次数
while(循环条件) {
循环体
}
do{
循环体
} while(循环条件)
直到....
当... 没有规律, 或者不知道次数
终止循环: break加粗样式
结束一次循环,继续下次循环: continue
举例:1.求1-100的和
public class Demo04For {
public static void main (String [] args){
//求1-100的和
int sum = 0;
for (int i =1 ;i<=100;i++){
sum+=i;
}
System.out.println("输出sum的值:"+sum);
}
运行结果:
举例:2.求20!的值
public class Demo04For {
public static void main (String [] args){
//求20!
sum = 1 ;
int a = 0;
for (int i =1; i<=20;i++){
sum = sum *i;
a = a +sum;
}
System.out.println(a);
}
}
运行结果:
举例:3.有一对兔子,从第3个月开始,每个月再生一对兔子,每个月有多少只兔子, 10个月有几只?
public class Demo04Rabbit {
public static void main (String[] args){
//有一对兔子,从第3个月开始,每个月再生一对兔子,每个月有多少只兔子, 10个月有几只?
int f1 = 1;
int f2 = 1;
int sum ;
for (int i =3 ;i<=10;i++){
sum = f1 +f2;
f1 = f2;
f2 = sum;
System.out.println("第"+i +"个月的兔子总数是:"+sum);
}
}
}
运行结果:
举例:4.猜数游戏
import java.util.Scanner;
public class Demo04Random {
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
int num = (int)(Math.random()*1000)+1;
int i = 1;
System.out.println("**********************************");
System.out.println("猜数游戏,请输入1个1——1000之间的数(你有10次机会!):");
while (i<=10){
int a = scan.nextInt();
if (a>num){
System.out.println("大了");
}else if (a<num){
System.out.println("小了");
}else {
System.out.println("恭喜你猜对了!");
break;
}
System.out.println("你还有"+(10-i)+"次机会");
System.out.println("----------------------");
i++;
if (i==11){
System.out.println("正确答案为:"+num);
}
}
scan.close();
}
}
运行结果:
举例:5.9x9乘法表
public class Demo07_9X9 {
public static void main(String[] args) {
for(int i =1; i<=9;i++){
for(int j=1 ;j<=i;j++){
System.out.print(i+"X"+j+"="+j*i+"\t");
}
System.out.println();
}
}
}
运行结果: