java ean13 计算_实训java第三课 for 逻辑运算符 条件判断 商品条形码Ean-13验证码生成...

package com.tarena.day03;

public class SwitchDemo {

/**

* Switch

*/

public static void main(String[] args) {

int score = 100;

String str="不及格";

switch(score / 10)

{

case 10:

//str = "优秀";

//break;

case 9:

str = "优秀";

break;

case 8:

str = "良";

break;

case 7:

str = "中";

break;

case 6:

str = "及格";

break;

//default:str = "不及格";break;

}

System.out.println(str);

}

} for循环

执行顺序 初始化 int i ;判断是否符合条件; 执行循环体;循环变量增加;判断是否符合条件,如此循环,

package com.tarena.day03;

public class ForDemo {

/**

* For循环

*/

public static void main(String[] args) {

int sum = 0;

for(int i = 1; i< 10;i = i+2)

{

sum += i+1;

}

System.out.println(sum);

double s=0.0;

for(int i = 1; i< 10;i = i+2)

{

s += 1.0/(i+1);

}

System.out.println(s);

int[] ary = {3,5,1,8,7,9};

// 0 1 2 3 4 5

System.out.println(ary[2]);

int v = 8;

int index = indexof(ary,v);

System.out.println(index);

}

private static int indexof(int[] ary, int v) {

for(int i = 0;i

{

if(v == ary[i])

return i;

}

return 0;

}

}

逻辑运算符 && || 是短路运算符,&  | 不是短路运算,短路运算符更符合我们的逻辑思维。使用短路运算符&&时如果第一个条件为假就不判断第二个条件,使用 || 时如果第一个条件为真则不判断第二个条件。

package com.tarena.day03;

import java.util.Scanner;

public class LogicDemo {

/**

* 工作中都使用短路运算,更符号我们的思维逻辑

*/

public static void main(String[] args) {

int age = 20;

int x = 1;

if (age > 60 && x++ == 2)// 短路

{

}

System.out.println(x);// 1

if (age > 60 & x++ == 2)// 非短路

{

}

// ctrl + shift + f 格式化快捷键

System.out.println(x);// 2

age = 70;

x = 1;

if (age > 60 || x++ == 8)// 短路

{

}

System.out.println(x);// 1

if (age > 60 | x++ == 8)// 非短路

{

}

System.out.println(x);// 2

int rows = 23;

Scanner sc = new Scanner(System.in);

rows = sc.nextInt();

int size = 10;

int pages ;

pages = rows % size == 0 ? rows/size : rows/size + 1;

System.out.println(pages);

}

}

数学运算符 取模运算时 %结果正负与取模符号%左边的操作数相同。自增运算服 ++ -- 变量先运算再赋值。赋值表达式也有值,也就是 = 左边 等数值

package com.tarena.day03;

public class OptDemo {

/**

* 数学运算符演示

*/

public static void main(String[] args) {

int i = 0x7fffffff + 0x7fffffff + 2;

System.out.println(i);// 0 溢出

long l = 0x7fffffff + 0x7fffffff + 2;

System.out.println(l);// 0 溢出

l = 0x7ffffffL + 0x7fffffff + 2;

System.out.println(l);// 0 不溢出

i = 3;

int x = i/2;

System.out.println(x);//1

x = 0/2;

System.out.println(x);//0

x = 3%2;

System.out.println(x);//1

x = -8%5;

System.out.println(x);//-3

int a = 1;int b;

b = a++;

// b=1,a=2

b = ++a;

//b=3,a=3

System.out.println("a:"+a+"b:"+b);// 3 3

a = a++;//缺德表达式

System.out.println(a); //3

double d1,d2;

d1 = 17;

d2 = 6;

System.out.println(d1 /d2);

}

}

package com.tarena.day03;

public class PlusPlusDemo {

/**

* @param args

*/

public static void main(String[] args) {

int x= 1;

int y;

x = (y = (x++));

x =

x++;

System.out.println(x);// 1

int a,b;

a = b = 4;

}

}

switch 条件判断为int类型 包括比int 小的整形, java底层为了题高性能比int小的整形都用32位表示。

case 表达式后如果不写break;那么就会执行下一个case中的内容。case条件可以乱序。

package com.tarena.day03;

public class SwitchDemo {

/**

* Switch

*/

public static void main(String[] args) {

int score = 100;

String str="不及格";

switch(score / 10)

{

case 10:

//str = "优秀";

//break;

case 9:

str = "优秀";

break;

case 8:

str = "良";

break;

case 7:

str = "中";

break;

case 6:

str = "及格";

break;

//default:str = "不及格";break;

}

System.out.println(str);

}

}

作业1:是否有航班

package day03;

import java.util.Scanner;

public class AirlineDemo {

public static void main(String[] args) {

boolean hasAirline = isHasAirline('2');

System.out.print("输入星期 0~6 或 日~六");

Scanner console = new Scanner(System.in);

String str = console.nextLine();

hasAirline = isHasAirline(str.charAt(0));

if (hasAirline) {

System.out.println("有航班");

} else {

System.out.println("无航班");

}

}

public static boolean isHasAirline(char c) {

boolean[] ishas={true,false,true,false,true,false,true};// 日 ~六

boolean result = false;

if(c >= '0' && c<='6')

result = ishas[c - '0'];

else

switch(c)

{

case '日': result = ishas[0]; break;

case '一': result = ishas[1]; break;

case '二': result = ishas[2]; break;

case '三': result = ishas[3]; break;

case '四': result = ishas[4]; break;

case '五': result = ishas[5]; break;

case '六': result = ishas[6]; break;

default:

}

return result;

}

}

作业2:13位商品验证码 Ean13

package day03;

import java.util.Scanner;

/**

* 生成EAN-13 验证码

*/

public class Ean13Barcode {

public static void main(String[] args) {

System.out.print("请输入条形码:");

Scanner console = new Scanner(System.in);

String code = console.nextLine();

System.out.println("验证码:"+ean13(code));

}

/**

* 计算验证码,输入12位条码, 返回带验证码的条码

*/

public static String ean13(String code) {

int sumj=0,sume=0;

int result=0;

for(int i =0;i< code.length()-1;i=i+2)

{

sumj += code.charAt(i) - '0';

sume += code.charAt(i+1) - '0';

}

result = sumj+ sume *3;

result = result %10;

if(result == 10)

result = 0;

else

result = 10 -result;

return code+result;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值