помощь в коде

dickermax
dickermax аватар
Offline
Зарегистрирован: 02.02.2016

написал код,который должен,при вводе какой-либо буквы выводить комбинацию буквы на нашем механизме. так вот ввел весь алфавит ,и начинаю проверять код пишу любую букву, а он мне выводет последнюю букву.Хотелось бы узнать правильный ли код ,и в чем моя ошибка.Печеньки тем,кто поможет)))

void setup() {
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(8,OUTPUT);
  Serial.begin(9600);

}

void loop() {

  String str ;
  str = Serial.readString();
  int str_len = str.length();
  char char_array[str_len];
  str.toCharArray(char_array,str_len);
 for (int i=0; i< str_len; i++){
  Serial.println(str[i]);
  if((str[0]=='a')||(str[0]=='A')){
    letterA();
    }
    
    if(str[0]=='b'||'B'){
    letterB();
    }
    if(str[0]=='c'||'C'){
    letterC();
    }
    if(str[0]=='d'||'D'){
    letterD();
    }
    if(str[0]=='e'||'E'){
    letterE();
    }
    if(str[0]=='f'||'F'){
    letterF();
    }
    if(str[0]=='g'||'G'){
    letterG();
    }
    if(str[0]=='h'||'H'){
    letterH();
    }
    if(str[0]=='i'||'I'){
    letterI();
    }
    if(str[0]=='j'||'J'){
    letterJ();
    }
    if(str[0]=='k'||'K'){
    letterK();
    }
    if(str[0]=='l'||'L'){
    letterL();
    }
    if(str[0]=='m'||'M'){
    letterM();
    }
    if(str[0]=='n'||'N'){
    letterN();
    }
    if(str[0]=='o'||'O'){
    letterO();
    }
    if(str[0]=='p'||'P'){
    letterP();
    }
    if(str[0]=='q'||'Q'){
    letterQ();
    }
    if(str[0]=='r'||'R'){
    letterR();
    }
    if(str[0]=='s'||'S'){
    letterS();
    }
    if(str[0]=='t'||'T'){
    letterT();
    }
    if(str[0]=='u'||'U'){
    letterU();
    }
    if(str[0]=='v'||'V'){
    letterV();
    }
    if(str[0]=='w'||'W'){
    letterW();
    }
    if(str[0]=='x'||'X'){
    letterX();
    }
    if(str[0]=='y'||'Y'){
    letterY();
    }
    if(str[0]=='z'||'Z'){
    letterZ();
    }
   }
}

     

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Что По Вашему должна означать вот эта запись?

if(str[0]=='b'||'B')

Если Вы надеетесь, что это означает "если str[0] равно 'b' или str[0] равно 'B'", то таки нет. Если Вам нужно такое сравнение, то так и нужно писать

if (str[0] == 'b' || str[0] == 'B')
// а лучше
if ((str[0] == 'b') || (str[0] == 'B'))

Дальше не смотрел.