Не знает, как использовать switch

#if-statement #switch-statement #boolean #processing

#if-statement #switch-statement #логическое #обработка

Вопрос:

это мой самый первый пост 🙂

Я изучаю графический дизайн на втором курсе, и нам нужно создать код для визитных карточек. Я хочу, чтобы при щелчке мышью фон визитной карточки менялся.

Он работал с логическим значением для двух изображений. Но теперь я хочу, чтобы он работал с четырьмя изображениями.

Попросил учителя о помощи, и она прислала мне информацию о Switch.

Но я понятия не имею, куда вставить мой код и как его заполнить.

Пока это мой код

 String Instagram="@Famoys_Saz";
String quote = "Guess my passion ;)";
PFont font;
PImage bg;
PImage Snake2;
PImage snake3;
PImage snake4;
boolean click = true; 



void setup() {
  size(850, 550);
  font = createFont("Galaxyfaceano-4yM9.ttf", 45);
  textFont(font);
  textAlign(CENTER);
  bg = loadImage("Snake.jpg");
  Snake2= loadImage ("Snake2.jpg");
  click = true;
}
void draw() {
  background(bg);
  if (click == true ) {
    image(bg, 0, 0);
  } else {  
    image(Snake2, 0, 0);
  }

  text(Instagram, mouseX, mouseY);
  text(quote, mouseY, mouseX, 05);
}

void mousePressed() {

  click =! click;
}
  

и это код, который мне прислал мой учитель:

 if( imageNumber == 1 ) {
 
} else if ( imageNumber == 2 ) {
 
} else {

}
  

Может ли кто-нибудь мне помочь? Я совсем новичок, когда дело доходит до кодирования.

Комментарии:

1. В Интернете есть много примеров — просто найдите оператор switch в C

Ответ №1:

это будет выглядеть примерно так:

 switch( imageNumber ) {
 
    case 1:  // same as saying imageNumber == 1
    //some code
    break;


    case 2:  // same as saying imageNumber == 2
    //some code here
    break;
}
  

Комментарии:

1. Мне просто интересно, что мне нужно заполнить на месте ImageNumber? Должен ли я указывать там имя изображения?

2. вы можете использовать имя изображения. Но я бы рекомендовал присвоить каждому изображению идентификатор, а затем передать этот идентификатор как целое число в ImageNumber и проверить, равно ли оно 1,2,3 или 4 в случае 1, случае 2 и так далее

3. Хорошо, я думаю, что знаю, что теперь делать, спасибо за помощь

Ответ №2:

 switch(imageNumber) {
  case 1:
    // do stuff
    break;
  case 2:
    // do stuff
    break;
  case 3:
    // do stuff
    break;
  case 4:
    // do stuff
    break;
  default:
    // if no case was selected, do this
}
  

Коммутаторы легко читаются и эффективны, и некоторые программисты предпочитают их else if . Оба варианта хороши, если они доступны для чтения, но коммутатор имеет некоторые уникальные особенности, например, необходимость использования break; между случаями. Завершит break; работу коммутатора, иначе он будет оценивать все другие возможные случаи (таким образом, вы экономите некоторое время выполнения).

В роботизированном проекте мне пришлось намеренно пропустить break; оператор, чтобы робот делал «все с этого момента», но это очень необычно и является источником многих ошибок для начинающих, о которых нужно забыть break; .

В зависимости от языка коммутаторы могут оценивать разные вещи, но классикой являются целые числа и строки.

Получайте удовольствие!

Комментарии:

1. Спасибо за ваш комментарий 🙂

2. @SarahRose Привет, Сара! Пожалуйста, проголосуйте за ответы, которые вам помогут (вы можете проголосовать за все из них, если все они помогут), и когда один ответ решит вашу первоначальную проблему, установите флажок, чтобы сделать его правильным ответом на вашу ситуацию (только один «официальный» ответ на вопрос). Эти действия помогут будущим пользователям с похожими вопросами найти эту информацию, вот как работает этот сайт: мы пишем ответы для вас, но одновременно и для будущих пользователей! Хорошего дня.

3. Спасибо, что объяснили мне, как работает этот веб-сайт 🙂