------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
位运算符
<<,>>,>>>,&,|,^,~
所有符号的操作数为整数(除&,|,的操作数可以使用boolean);
将一个数左移1位,相当于该数 * 2;
将一个数右移1位,相当于该数 / 2;
条件运算符:
(逻辑表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表
判断结构:
if语句
三种格式:
1.if(逻辑表达式)
{
执行语句;
}
2.if(逻辑表达式)
{
执行语句;
}
else
{
执行语句;
}
3.if(逻辑表达式)
{
执行语句;
}
else if (逻辑表达式)
{
执行语句;
}
……
else
{
执行语句;
}
我的想法
当需要选择一些范围性的结果时,考虑选择if语句
选择结构:
switch语句
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
我的代码
<pre name="code" class="java">class Demo {
public static void main (String[] args){
//星期的问题
int week = 7;
switch (week){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default :
System.out.println("非法的星期值!");
break;
}
int num1 =10;
int num2 =5;
int result =0;
char c ='-';
switch(c){
case '+':
result =num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
System.out.println("非法的运算符!");
}
System.out.println("result = "+ result);
int month =12;
switch (month){
case 3:
System.out.println("春天");
break;
case 4:
System.out.println("春天");
break;
case 5:
System.out.println("春天");
break;
case 6:
System.out.println("夏天");
break;
case 7:
System.out.println("夏天");
break;
case 8:
System.out.println("夏天");
break;
case 9:
System.out.println("秋天");
break;
case 10:
System.out.println("秋天");
break;
case 11:
System.out.println("秋天");
break;
case 12:
System.out.println("冬天");
break;
case 1:
System.out.println("冬天");
break;
case 2:
System.out.println("冬天");
break;1
}
}
}
我的想法
当需要进行多重判断多重选择时,尤其需要精确匹配时,考虑使用switch语句
选择结构注意事项
1.switch语句选择的类型只有:byte,short,int , char。enum(JDK5),String(JDK7)
2.case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
3.结束switch语句的两种情况:遇到break,执行到switch语句结束。
4.如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
循环结构:
1.while语句格式:
while(条件表达式)
{
执行语句;
}
(1).先判断逻辑表达式的值。若=true.则执行其后面的语句,后再次
判断条件并反复执行,直到条件不成立为止;
(2).退出机制:
1).将条件表达式置为false;
2).使用break;强制退出;
while(条件表达式){
//循环体
}
2.do ........while......语句格式
do{
//循环体
}while(条件表达式);
3.for语句格式
for(初始化表达式;循环条件表达式;增量表达式){
//循环体
}
注意
1.while和for循环是先判断后进入循环体;do…while循环是先进入循环体,后判断;
对于大部分循环的需求,任何一种循环结构都可以实现;
对于明确范围、有一定增量规律的情况可以优先考虑使用for循环,结构清晰;
循环是可以嵌套的,一种循环内部可以嵌套另外的循环,而且可以无限嵌套;
注意:内、外循环中,变量的作用域范围;
continue用于结束本次循环,继续下一次循环;
break用于跳出循环;
带标号的continue和break用于循环结构,而且一般用于嵌套循环的情况下,内部循环操作外部循环时;
我的想法
我认为for是最好用的循环语句,而当需要先执行一次再开始循环,那就用do...while比较合适,当需呀用到计数器的时候,考虑用while循环
我的代码
class Demo
{
public static void main(String[] args)
{
int num =0;
int sum =0;
while (num <=100)
{
sum=sum+num;
num=num+2;
}
System.out.println("1-100之间所有偶数的和为:"+sum);
}
}
class Demo{
public static void main(String[] args){
int sum =0;
for (int num =1;num <=100 ;num++){
if (num %2 ==1){
sum = sum +num;
}
}
System.out.println("1-100所有奇数的和为:" + sum);
}
}
class Lianxi {
public static void main(String[] args){
/*
个位=万位 ;
十位=千位 ;
个位+十位+千位+万位 =百位
*/
for (int i = 10000; i <=99999; i++){
int ge = i %10;
int shi = i /10 %10;
int bai = i /100 % 10;
int qian = i /1000 % 10;
int wan = i / 10000 % 10;
if (ge==wan && shi==qian && ((ge + shi + qian +wan )==bai)){
System.out.println("五位数为:" + i);
}
}
/*
水仙花数
*/
for (int s =100;s <=999 ; s++){
int ge = s % 10;
int shi = s /10 %10;
int bai = s /100 %10;
if (ge*ge*ge+shi*shi*shi+bai*bai*bai==s){
System.out.println("水仙花数为:"+s);
}
}
}
}