java基础奇数偶数判断

位运算与奇偶判断
1.   按位与运算   按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1   ,否则为0
package shenkxiao.test.com;  
public class ShenkxiaoTestisOdd {  
  
    /** 
     * @param args 
     * @author ShenkXiao 
     */  
      
    public static void main(String[] args) {  
        // TODO Auto-generated method stub   
        // 知识关键点: 在int数值中有一半是负数,若根据除2判断其余数是否为1来定奇偶会有1/4的时候返回错误的判断。        
          
        //调用错误方法   
        for(int i=-2;i<3;i++){  
            System.out.println("***************调用错误方法***************");   
            System.out.println(i+"为奇数:"+ShenkxiaoTestisOdd.isOdd(i));             
              
            System.out.println("***************调用参考方法一***************");      
            System.out.println(i+"为奇数:"+ShenkxiaoTestisOdd.isOddCorrect1(i));         
              
            System.out.println("***************调用参考方法二***************");      
            System.out.println(i+"为奇数:"+ShenkxiaoTestisOdd.isOddCorrect2(i));     
              
            System.out.println("####################################################");   
        }                 
    }     
          
    //错误的判断奇偶数的方法  
    public static  boolean isOdd(int i){  
        return i%2==1;  
    }  
      
    //参考方法一 :  
    public static  boolean isOddCorrect1(int i){  
        return i%2!=0;  
    }  
      
    //参考方法二 :  
    //如果你正在一个性能临界(performance-critical)环境中使用isOdd方法,那么用位操作符AND(&)来替代取余操作符号会显得更好。      
    public static  boolean isOddCorrect2(int i){  
        return (i&1)!=0;  
    }  
  
} 

 

<think> 嗯,用户询问如何在SAP系统中修改采购订单供应商信息。这是一个典型的SAP MM模块操作问题,需要结合系统功能和引用内容综合分析。 从引用资料看,用户提供的参考内容主要涉及采购信息记录修改(ME12)、采购单位确定逻辑、采购订单基本概念及发票校验流程,但没有直接说明采购订单供应商修改方法。不过引用[2]提到采购订单参考其他凭证创建时会复制源数据,这可能影响修改权限。 用户的核心痛点应是采购订单创建供应商信息错误的修正场景。根据SAP标准逻辑,采购订单一旦创建,关键字段如供应商、物料号在后续业务发生后通常会被锁定。需要分两种情况处理: 1. 无后续业务时:可通过ME22N直接修改供应商字段。但要注意若订单是参照创建(如合同转订单),需先检查源凭证的供应商设定,引用[2]明确说明参照生成的订单单位字段为灰色不可改,供应商字段同理。 2. 已有收货或发票时:必须使用归档流程。引用[4]展示的发票校验历史记录表明,系统会严格跟踪订单状态变化。此时直接修改供应商会导致业务数据断裂,标准方案是: - 取消已关联的收货/发票凭证 - 冻结原订单 - 创建订单给正确供应商 这点在引用资料中虽未明说,但发票校验的强关联性(MIRO必须匹配入库凭证)已暗示数据完整性的约束。 用户可能是采购专员或MM顾问,ta特意强调“修改”而非“创建”,说明遇到的是订单修正的实际问题。隐含需求可能是想了解修改失败时的报错处理,比如常见的“字段不可修改”消息(类似引用[2]提到的ME898消息)。 需要补充应急预案:若供应商修改失败导致订单阻塞,可通过ME22N冻结订单并在文本说明栏标注异常,避免后续误操作。同时提示测试环境演练的重要性——引用[1][4]都强调本文仅用于学习,侧面反映生产系统直接操作的风险。 </think> 在SAP系统中修改采购订单供应商需根据订单状态采取不同操作,以下是具体方法和注意事项: ### 一、直接修改(仅限无后续业务时) 1. **适用场景**:订单尚未触发收货(GR)或发票校验(MIRO) 2. **操作步骤**: ```trans 事务代码 ME22N → 输入采购订单号 → 直接修改供应商字段 → 保存 ``` > ⚠️ 若订单通过其他凭证(如合同)创建供应商字段可能被锁定(灰色不可编辑),需先取消参照关系[^2]。 ### 二、存在后续业务时的强制修改 若已发生收货或发票,需按流程重置业务: 1. **逆向操作顺序**: ```mermaid graph LR A[冲销发票校验 MIRO/MIRR] --> B[冲销收货 MIGO] --> C[冻结原订单] --> D[创建订单给新供应商] ``` - **冲销发票**:事务码`MIRR`,引用凭证号(见采购订单历史[^4]) - **冲销收货**:事务码`MBST`,选择对应物料凭证 - **冻结旧订单**:ME22N中设置"冻结"标识 2. **创建订单**: - 使用`ME21N`为新供应商创建订单 - 复制原订单项目时,需手动更新价格条件(新供应商可能适用不同价格) ### 三、关键限制与建议 1. **系统约束**: - 若订单通过参照创建(如合同转订单),供应商字段禁止修改(系统报错ME898)[^2] - 已审批的订单需先释放审批状态 2. **审计要求**: - 修改后系统自动生成修改记录(事务码ME80FN可查看) - 重大变更建议通过备注说明原因(ME22N文本字段) 3. **替代方案**: ```table | 场景 | 解决方案 | |-------|---------| | 少量交货错误 | 对新供应商创建退货订单→原供应商 | | 长期供应商切换 | 终止原信息记录→新建供应商主数据 | ``` > 📌 **操作警示**:直接修改供应商可能导致后续业务断裂(如发票校验差异[^4]),务必在测试系统验证后再执行生产系统操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值