个人JAVA笔记系列-基础语句

Java基础语句if:   

程序流程控制,表达式结果必须为true or false如果if语句的控制语句没有写大括号,则只能控制离它最近的单条语句

顺序运算只能从上到下顺序运算,if语句可以根据条件结果,运算两个或多个运算。

比如:顺序运算:吃饭,学习,运动

if语句运算:如果吃饭吃多了为真,则运动;如果为假,则学习;

int a,b,c;a=3;b=4;c=5;

if (a>b){   

if (a>c){ System.out.println (“max number=”+a);

}else {

System.out.println  (“max number=”+c); } 

}else {

int x=b>c?b:c;System.out.println (“max number=”+x;  }
if语句的第三种格式:   

多重判断,这条语句是作为一条语句存在,if语句中,只有一个执行语句会被执行。

if (条件表达式)      {  执行语句    }\\  嵌套 ,就是语句中写入新的语句else  if (条件表达式)      {  执行语句   }else      

{  执行语句   } ;
概念:局部代码框 

 把代码封装到一起 ,意味着代码只在该区间生效 

{int a=8;System.out.println (“m= “+m);  }

System.out.println (“m= “+m);

以上代码编译会报错,因为局部代码框中的变量在运算完后,会被释放,丢弃,外部代码读取不到代码框内变量;
局部代码块有什么用?

因为它具有运算完,就自动释放特性,(决定代码的生命周期);所以当代码只需要运行一次时,可以对它封装,节省内存空间。局部代码块只有是单个存在时,才会丢失运算结果;限制代码的生命周期
主函数代码框:public  static void main (string [] args ) {  }  ;


练习题,需求:根据用户指定的具体数据,判断该数据对应的星期;

思路:用户具体输入什么,是未知的,所以以一个变量来代替该数据进行操作;

int = week ;if ( week==1)       { System.out.println ( week+“等于星期一”); 

}else if (week==2)     

{ System.out.println ( week+“等于星期二”);  }…     \\ 以此类推 知道星期日else      { System.out.println ( week+“输入错误”);  }          \\  程序应考虑多面性[健壮性],运算结果如果只有一个,应只用一个语句,达到性能最优,可以节省算力。

代码复用性:如果代码重复性很高,就应该停止继续下去,先将条件合并,提高复用性;例子:多条件对应相同内容时,应该将多条件合并使用;多条件连接时,就要用到逻辑运算符;

练习题: 需求:一年有四季,根据用户输入的月份,给出季节;春季 2,3,4 ; 夏季5,6,7; 秋季 8,9,10; 冬季 11,12,1;

int month;month=5;if (month<0 || month>12)//排除掉有用数据以外的值,限定运算范围        System.out.println (month+”月份没有对应的季节”);

else if (month>=2&&month<=4)       

System.out.println (month+”月份对应的是春季”);

else if (month>=5&&month<=7)       

System.out.println (month+”月份对应的是夏季”);

else if (month>=8&&month<=10)        

System.out.println (month+”月份对应的是秋季”);

else         System.out.println (month+”月份对应的是冬季”);


switch语句:  示范1
int a=2;switch (a){   

 case 1:      System.out.println (“a”);      break;   

 case  2:       System.out.println (“b”);         break;     

default:           System.out.println (“该数据无法运算”);}\\根据变量名的变量数据去判断相应的执行语句;


示范2
int a=2,b=4;char operate=’+’;

switch (operate){   

case ‘ – ‘ :        System.out.println ( a-b);         break;   

case  ‘+’ :          System.out.println(a+b);           break;   

 case ‘*’ :            System.out.println(a*b);             break;   

 case ‘%’  :             System.out.println(b%a);             break;     

default :              System.out.println (“该值无法运算”);}\\根据变量名对应的变量字符,去执行相应的语句;
示范3\\根据用户指令,判断季节的需求;

int month ;month=3;

switch (month){   

case 2:   

case 3:   

case 4:         System.out.println ( month+”月份对应的是春季”);     break;        

case 5:     

case 6:     

case 7:           System.out.println ( month+”月份对应的是夏季”);     break;        

default:          System.out.println (month+”没有对应的季节”);}//switch语句同样适用程序的复用性,当多个条件执行的语句相同时,可叠加case,默认继续读取下一条代码,实现多条件,同结果;


总结:switch语句是对变量名操作,根据变量名的变量数据去进行选择;语句最末尾一句可以不写break;如果是前面不写break;则会顺序执行到有break处或大括号尾;支持四种数据类型:byte,short, int,char;switch (  )后加大括号{}框住所有case;  case后加冒号:  代表执行以下语句; case完成后,加break;跳出程序.


if语句和switch语句的区别:

if语句特点:

1,只能对具体整数类型数值判断;

2,对数值区间进行判断运算;

3,对数值为boolean类型的表达式进行判断;

switch语句特点:

1,对数值和字符进行判断;

2,值的个数通常是固定的;

3,因为switch语句是一次性将全部答案搬进内存,是作为一个语句存在(只有一个局部代码框);效率会比if语句略高一些;但是if语句更简单,会更不容易出错;


while语句

控制循环次数的因子:

1,条件表达式

2,组成条件表达式的:变量1,变量2
实例1,

long a,b,c;a=1; b=10000; c=0;

while (a<b){

System.out.println (“2的”+c+”次方=”+a);a=a<<1;c++;}  

System.out.println(“2的2次方运算完毕,”+”一共运算”+(c-1)+”次”);}}

实例2   上证指数模拟

double capital, extent, repeat;capital=2900; extent=1.028;repeat=0;

while (capital<6000){

capital=capital*extent;repeat++;

System.out.println (“每次涨=”+(capital)+”涨的次数=”+(repeat));}}}
do while 语句:

无论条件表达式是否成立,都会执行一次语句

int a=1;

do {

System.out.println (“a=”+a);a++; 

}while (a<1);
联系题:累计思想 :

累计(sum)=累计本身(sum)+规律x    (x++)

需求:求出自然数字1~10,然后求这10个数字的和;int number =0, total=0;

思路:

第一步,分析:1,自然数有递增规律;

2,每次的加法的和都是与下一个数相加;

3,重复递增,重复加法;

第二步,代码思路:

1,定义一个变量存储递增的数据,定义一个变量储存加法的和的数据;

2,先运算递增,再运算加法的和,以此步骤重复;重要的是掌握这种解决办法的思想;实例: int number=0,total=0;//声明两个变量,并初始化;
while (number <10){

number=number+1;\\自增求自然数,并赋予给number;
total=number+total;\\求前一个自增数与现在自增数的和,并重新赋予给total;
System.out.println (“自然数字=”+(number)+”总和=”+(total));}累加,累减,累除,累积算法都可以,如果要分析每次结果,则把打印放里面,如果只需要分析最后结果,则把打印放循环外边。


计数思想:

满足某条件后,才进行计数;也就是说,记录一个变化的次数;这个变化可以是任何条件;例题:1~100中,6的倍数有多少个?

思路:变量1,自然数的递增;变量2,6的倍数的个数;

6的倍数是什么?是倍数除以6正好等于0;

就等于变量1除以6必须等于0;当满足变量1除以6等于0的时候,计数1次;

int number=1;  int count=0;

while (number<=100)  \\当数值小于等于100时,无限循环{if (number %6 ==0)      \\只有当满足条件时,才计数一次;

{count++;}else{number++;}        \\否则就数值自增一次,然后循环;  }

System.out.println (count);    \\打印循环次数;

while (ture)    {  }

for (; 😉       {  } \\for语句的表达式,初始化和循环后可以不写,条件表达式默认为真;

什么时候会用到循环语句?

当重复代码,需要执行很多次时,就使用循环语句;当需要对一个条件进行一次判断时,使用if语句;当需要对一个条件进行多次判断时,使用while语句;值得注意:在使用循环语句时,一定要明确,哪些语句需要参与循环,那些语句不需要参与循环;例如:打印循环语句一般情况下需要定义条件,和需要控制循环次数;

循环语句的两个注意:

1,语句是否会结束循环;2,输出结果是否正确;

for循环嵌套:

for (int x=1; x<=3;x++)   {     

   for (int y=1; y<=4; y++)                  {                     

  System.out.println(“大圈套小圈”);                   }    }

特点:当大圈循环一次时,小圈循环4次;所以该代码一共打印字符串:3*4=12次应用场景:当一种情况循环一次时,与它相关的对应的另外一种情况会循环多次时,就用for循环嵌套;
大圈和小圈里有两个自增变量,小圈的自增变量是会初始化,而大圈的自增变量相对小圈而言,是保留的。可以利用这一点,来对小圈内的循环次数进行控制;
for循环嵌套的控制循环次数方式:

1,通过内圈里的boolean布尔运算的两边的变量进行控制;

自增左边也可以,递减右边也可以;(也就是数值的规律变化)

for example:

for (int x = 0 ; x <array.length ; x++ ){ 

  for ( int y = x ;  y < array.length-x ;  y ++ )     //y等于x,是从左边开始缩小范围;y<x, 是为了从右边开始缩小范围;     

  {                System.out.println();         }}