关闭

黑马程序员——基础学习(二)基本运算符和基本逻辑语句

标签: 计算机黑马程序员java
152人阅读 评论(0) 收藏 举报

------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语句选择的类型只有:byteshortint , charenum(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.whilefor循环是先判断后进入循环体;dowhile循环是先进入循环体,后判断;

对于大部分循环的需求,任何一种循环结构都可以实现;

对于明确范围、有一定增量规律的情况可以优先考虑使用for循环,结构清晰;

循环是可以嵌套的,一种循环内部可以嵌套另外的循环,而且可以无限嵌套;

注意:内、外循环中,变量的作用域范围;

continue用于结束本次循环,继续下一次循环;

break用于跳出循环;

带标号的continuebreak用于循环结构,而且一般用于嵌套循环的情况下,内部循环操作外部循环时;

我的想法

我认为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);
			}
		}
	}	
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4087次
    • 积分:202
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档