JAVASE(二)
程序流程控制
结构化程序设计中规定的三种基本流程结构,分别为:顺序结构,分支结构,循环结构。
顺序结构:
程序是由上而下执行。
public class demo1 {
int num1 = 12;
int num2 = num1 + 2;
}
分支结构:
分支语句if-else
if语句三种格式
if语句循环demo案例1:
需求:
从键盘上输入一个整数,判断该数是否是素数。(1不是素数,素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数)
思路:
定义一个for循环和辅助变量i,并给i赋初始值2,i的边界<=z,并且增量为1。第一步先在for循环中判断输入的整数z对i取余数,如果余数为0,则跳出循环。第二步判断循环结束时i与z的值是否相等,如果相等,则该数是素数,否则不是素数。
public class demo1 {
public static void main(String[] args) {
Scanner scss = new Scanner(System.in);
System.out.println("请输入整数z:");
int z = scss.nextInt(); //这里就是接收用户输入的整数参数,复制给z
int i;
for (i = 2; i <= z; i++) {
if (z % i == 0) break; //遇到整除就跳出循环
}
if (i==z){
System.out.println(z+"是整数");
}else {
System.out.println(z+"不是整数");
}
}
}
结果:
if语句循环demo案例2:
描述:
我国古代数学家张丘建在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”(假定每种鸡都必须至少有一只)
思路:
设鸡翁、鸡母、鸡雏分别为x,y,z只,分析题目可以知道(1)5x+3y+1/3z=100;(2)x<20,y<33(3)z=100-x-y;因此通过设置两个for循环实现,当满足条件5x+3*y+z/3==100时,输出可能的结果。
public class demo2 {
/*
描述:
编写程序实现系统产生0-50之间的随机数,用户通过键盘输入猜测随机数,并在每次输入后提示用户是否猜对,如果猜大了,会提示“抱歉!猜大了,请继续猜”,否则会提示“抱歉!猜小了,请继续猜,可以大一点哦”,直到完全猜对,会提示“你真厉害,猜对了,游戏结束”。
提示:
产生随机数需要导入:import java.util.Random;
使用:Random rd = new Random();int i = rd.nextInt(50);
思路
设置两个变量i,j分别表示随机数和玩家输入的数。然后通过while循环中嵌套三个if-else语句实现对两个变量大小的比较。猜对后给a赋值1退出循环。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rd = new Random();
int i = rd.nextInt(50);
int j;
int a=0;
while (a == 0){
System.out.println("请输入猜测数:");
j=sc.nextInt();
if (i>j){
System.out.println("抱歉!猜小了,请继续猜,可以大一点哦");
}else if (i<j){
System.out.println("抱歉!猜大了,请继续猜");
}
else if (i==j){
System.out.println("你真厉害,猜对了,游戏结束");
a=1;
}
}
}
}
结果:
分支语句Switch=case
public class SwitchTest {
public static void main(String args[]) {
int i = 1;
switch (i) {
case 0:
System.out.println("one");
break;
case 1:
System.out.println("two");
break;
default:
System.out.println("other");
break;
}
}
}
1.switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);
2.break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾
3.default语句是可以在Switch循环语句最后面设置强制退出循环提示异常。
循环结构:
循环语句由四个组成部分
1.初始化部分
2.循环条件部分
3.循环体部分
4.迭代部分
循环结构:for循环
public class ForLoop {
public static void main(String args[]) {
int result = 0;
for (int i = 1; i <= 100; i++) {//1.初始化部分 2.循环条件部分 3.迭代部分
result += i;//循环体部分
}
System.out.println("result=" + result);
}
}
循环结构:while循环
public class WhileLoop {
public static void main(String args[]) {
int result = 0;
int i = 1;//1.初始化部分
while (i <= 100) {//循环条件
result += i;//循环体部分
i++;//迭代部分
}
System.out.println("result=" + result);
}
}
循环结构:do-while循环
public class DoWhileLoop {
public static void main(String args[]) {
int result = 0, i = 1;//初始化部分
do {
result += i;//循环体部分
i++;//迭代部分
} while (i <= 100);//循环条件部分
System.out.println("result=" + result);
}
}
注意:while与do…while的区别
- while: 先判断 再执行 条件不成立 循环体 一遍都不执行
- do…while: 先执行 再判断 条件不成立 循环体 至少执行一遍
特殊关键字break,continue
break语句:
break语句用于终止某个语句块的执行
public class BreakTest{
public static void main(String args[]){
for(int i = 0; i<10; i++){
if(i==3)
break;//当条件成立时,终止for循环
System.out.println(" i =" + i);
}
System.out.println("Game Over!");
}
}
continue语句:
continue只能使用在循环结构中
continue语句用于跳过其所在循环语句块的一次执行,继续下一次循环
public class ContinueTest {
public static void main(String args[]){
for (int i = 0; i < 100; i++) {
if (i%10==0)
continue;//跳出成立的循环
System.out.println(i);
}
}
}
注意:
1.return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
2.与break和continue不同的是:break跳出循环,continue跳到下一个循环
return直接结束整个方法,不管这个return处于多少层循环之内
总结:
本章节带大家了解了JAVA语言的基本循环:if,for,while,do -while循环讲解
后续会不断更新JAVA语言的文章(基础,题目,算法)
*
1.return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
2.与break和continue不同的是:break跳出循环,continue跳到下一个循环
return直接结束整个方法,不管这个return处于多少层循环之内
总结:
本章节带大家了解了JAVA语言的基本循环:if,for,while,do -while循环讲解
后续会不断更新JAVA语言的文章(基础,题目,算法)
喜欢的可以关注博主或该公众号谢谢