写到这里,才算正式进入编程语言。
之前的都是基础中的基础,用数学方式发打比方来说,就是学习阿拉伯数字和简单的四则运算,现在开始做应用题了
程序流程控制分为
1、顺序结构
程序从上到下逐行执行,中间没有任何判断和跳过。
就像之前写的那个赋值运算符语句,从第一行开始执行到最后一行,中间没有任何判断,跳过。
2、分支结果
根据条件,选择性的执行代码
比如if...else和switch..case 两种分支语句
3、循环结果(循环中会牵扯到迭代和迭代器,这一块当时没有学好,只会用,不理解到底什么意思,在这里先做一个记录,新手看可以暂时忽略,后面会讲到!)
根据循环条件,重复性的执行某段代码
有while、do...while、for三种循环结构
jdk1.5以上版本还有foreach循环,遍历集合和数组元素(其实我没用过,我只在页面上用过c:foreach)
if-else 语句
第一种模式:if(条件表达式){
执行代码块;
}
用语文来教你写代码:如果(小明写了作业){
那我就去抄他的
}
实战案例:
int a = 4;
if(a>3){
System.out.println(a);
}
第二种模式:if(条件表达式){
执行代码块;
}else{
执行代码块;
}
加上else意思就是除了第一个if的条件的所有情况都执行else下的代码块
用语文来教你写代码:如果(小明写了作业){
那我就去抄他的
}否则{
那我就自己写
}
实战案例:
int a = 4;
if(a>5){
System.out.println(a);
}else{
System.out.println(a+""+"不大于5");
}
get新技能:‘+’号在输出语句里面可以做连接符,把前后句给练起来输出。使用连接符的时候最好最右都一个空,也就是"",
因为abcd都是有Unicode码的,Unicode码也就是数字,一不小心,你弄个+号就可能会被程序认为是计算题!所以如果你用‘+’号是
想做连接符,不是做加法的时候,最保险的做法就是+号两边都加"",记得是英文双引号哦,这样就不会出错了。这两个是空字符,
不会产生任何空格的
第三种:if(条件表达式){
执行代码块
}else if(条件表达式){
执行代码块;
}
else 后面还有if的意思就是第一个if条件不对,那就执行第二个if条件
用语文来教你写代码:如果(小明写了作业){
那我就去抄他的
}否则 如果(小明没有写){
那我就去督促他写完,然后我再抄他的
}
实战案例- -:自己想
注意:用if—else语句时,最后都用else结尾!
switch语句
switch(变量){
case 常量1(值1):
语句1;
break;
case 常量2(值2):
语句2;
break;
}
先来解释一个陌生的词:break,作用是跳出当前循环。
switch 就像是一道选择题,把所有的选项全部都罗列出来,然后根据提示直接选择你需要的选项就可以了;
但是 switch 是一个分支表达式,是一个条件控制语句。所以当你选择一个选项之后,当前switch语句就已经结束了。
所以,我们在每一个选项的后面都加上一条break,这样你选择任意一个选项之后,当前switch语句结束。
实战:
int a ;
Scanner input = new Scanner(System.in);
System.out.println("小明欺骗你了你,你现在有三种选择可以惩罚他\n
1,揍他;2,让他跑一千米;3,让他向你道歉");
a = input. nextInt;
case 1:
System.out.println("你狠狠的揍了他一顿");
break;
case 2:
System.out.println("小明是个胖子,你累死他了");
break;
case 3:
System.out.println("小明拒绝道歉,并且向你发动了一次鄙视攻击");
break;
get新技能;输入语句 Scanner;可以在控制台上输入你要内容,现在起才是交互的开始,开始有点面向对象编程的味道;
很简单的东西:
首先导包:
import.java.util.Scanner; //(这就是为什么大家喜欢用编译器的原因,遇到导包这种事,根本不用自己去写)
Scanner input = new Scanner(System.in);
int a = input.nextInt();
String s = input.next();
这样就用键盘在控制台上进行和程序的交互操作了。举了一个int的例子和一个String的例子,这是比较有代表性的两个例子吧
String和char输入的时候 只需要调用next即可。String 和char之外的类型要根据自己的类型在next加上类型 比图要输入的是int 那么就是nextInt。
循环结构
在满足某些条件的情况下,反复执行特定代码的功能。
循环语句由四个部分组成
初始化部分 (in_statement)
循环条件部分 (test_exp)
循环体部分 (body_statement)
迭代部分 (alter_statement)
PS:别问我英文啥意思,布吉岛!!!
循环语句包括:for,while,do/while
for循环结构
格式:①初始化结构,②循环条件,③迭代条件,④循环体
for(①;②;③){
④
}
①初始化表达式,负责完成变量的初始化 eg:int i = 0;声明出一个int类型的变量i,初始化它的值为0;
②循环条件表达式,值为boolean型的表达式,指定循环条件。意思很简单,不是对就是错。
③迭代条件:循环后操作表达式,负责修整变量,改变循环条件
④循环体就没什么好说的了,就是需要执行的代码部分。
执行流程是:1-2-4-3-2-4-3...4-3-2
直到循环条件不满足,退出当前循环
实战;
for(int i = 0;i<=4;i++){
System.out.println("helle.worad");
}
执行效果:helle.worad 输出五次。
注意:0 也是 1次,不要以为初始化值为0,就只有4次。i<=4,就是0,1,2,3,4 五次!!!!
while循环
格式:①
while ② {
④③
}
实战:
int i = 0;
while(i <= 4){
System.out.println("helle.worad");
i++;
}
do while循环
格式:①
do{
④③
}while(②)
实战:
int i = 0;
do{
System.out.println("helle.worad");
i++;
}while(i<=4);
while和do/while的区别
do/while循环至少会执行一次;while的条件如果不符合一次都不会执行。
无限循环
for(;;){}
while(true){}
一般情况下,在无线循环内部要有程序终止的语句,用break实现。如果没有,那就是死循环。
嵌套循环:循环中还可以声明循环,相当于内层循环充当外层循环的循环体。
for(;;){
for(;;){
}
}
while(){
for(;;){
}
}
用最简单的方法解释一下:输出一个图形,图形由“*”构成,横竖各五个。
用嵌套循环就可以实现,外层循环控制行数,内层循环控制列数。
for(int i = 0 ;i<=4;i++){
for(int j = 0; j<=4; j++){
System.out.print("*");
}
System.out.println();
}
在这里说一个break的点,break的作用就是跳出当前循环,但是记得break是跳出当前循环,
意思也就是如果是嵌套循环,你在内循环写的break,只是跳出内循环,外循环还会继续。
如果要继续跳出外循环也很简单,在外循环外面再写一个break即可。